第十一周---Python实践

这周对于Python进行了更加深入的使用,主要方面就是面向对象方面的知识。首先是构造函数,真的跟java这些都很大的不同。但是使用也是非常方便。

Python里面有__init__()这个构造方法,可以在直接传入参数,然后在类的实例时可以直接传参调用这个方法。

class Complex:
    def __init__(self, realpart, imagpart):
        self.r = realpart
        self.i = imagpart
x = Complex(3.0, -4.5)
print(x.r, x.i)   # 输出结果:3.0 -4.5

而且这个self也是非常的神奇,真的很好用。我的感觉就是只要是一个类中,就可以 self.  任何属性。真的很方便。

对于Python的类的继承有了很大的了解以及实践:(人---学生)(人---教师)(学生---研究生)

class People:
    #定义基本属性
    name=''
    sex=''
    age=0
    #定义构造方法
    def __init__(self,name,sex,age):
        self.name=name
        self.sex=sex
        self.age=age
    def speck(self):
        print('我叫 %s ,性别 %s ,%d岁'%(self.name,self.sex,self.age))

#测试
x=People('xm','man',20)
x.speck()

#继承
class Student(People):
    #定义基本属性
    stu_num=0
    ru_time=''
    ru_grade=''
    #定义构造方法
    def __init__(self,name,sex,age,stu_num,ru_time,ru_grade):
        #继承初始化
        People.__init__(self,name,sex,age)
        self.stu_num=stu_num
        self.ru_time=ru_time
        self.ru_grade=ru_grade
    def speck(self):
        print('我叫%s ,性别%s ,%d岁 , 学号%d , 入学时间%s , 入学成绩%s'%(self.name,self.sex,self.age,self.stu_num,self.ru_time,self.ru_grade))
#测试
x1=Student('xm','man',20,20173690,'2017.9','10000000')
x1.speck()

class Teacher(People):
    zw=''
    bm=''
    gzsj=0
    def __init__(self,name,sex,age,zw,bm,gzsj):
        People.__init__(self,name,sex,age)
        self.zw=zw
        self.bm=bm
        self.gzsj=gzsj
    def speck(self):
        print('我叫%s ,性别%s ,%d岁 , 职务%s , %s部门 , 工作%d年'%(self.name,self.sex,self.age,self.zw,self.bm,self.gzsj))
#测试
x2=Teacher('xm','man',20,'BOSS','家里蹲',200)
x2.speck()

class Graduate(Student):
    yjfx=''
    ds=''
    def __init__(self,name,sex,age,stu_num,ru_time,ru_grade,yjfx,ds):
       Student.__init__(self,name,sex,age,stu_num,ru_time,ru_grade)
       self.yjfx=yjfx
       self.ds=ds
    def speck(self):
        print('我叫%s ,性别%s ,%d岁 , 学号%d , 入学时间%s , 入学成绩%s , 研究方向%s , 导师%s'
              %(self.name,self.sex,self.age,self.stu_num,self.ru_time,self.ru_grade,self.yjfx,self.ds))
#测试
x3=Graduate('xm','man',20,20173690,'2017.9','10000000','发呆','xxm')
x3.speck()

当然在后续实验使用中还学习到了其他有用的模块:(可以判断正确日期)

#模块识别日期是否符合规则
from datetime import date
#判断
    def isVaildDate(self):
        try:
            #判断异常
            date(self.year,self.month,self.day)
        except:
            #异常输出
            return False
else: return True

 

判断是否为闰年(返回为True或者False)

import calendar
print(calendar.isleap(2000))

 

还有很多time模块的介绍:菜鸟教程

 

posted @ 2020-05-02 22:56  birdmmxx  阅读(210)  评论(0编辑  收藏  举报