这周对于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模块的介绍:菜鸟教程