Python自学笔记(九)
#类 #类的创建 :class类名 + 冒号,后面语句要缩进 #类的属性创建:通过赋值语句(即定义“是怎样的”) #实例方法的创建:def + 方法名(self) #方法具体的执行过程,即定义“能做什么” class Computer(): #初始化的方法命名 双下划线+init+双下划线 ,实例化对象时,直接调用方法 def __init__(self): print('初始化') screen = True def start(self): print("电脑开机") #类的调用 c = Computer() print(c.screen) #True c.start() #电脑开机 class A(): def __init__(self,name): self.name=name def Day(self): print('今天是{}生日'.format(self.name)) def B(self): print('今天是{}'.format(self.day)) a=A('张三') a.Day() a.day = '星期三' #定义a.day属性 print(a.day) a.B()
#类的继承,让子类拥有父类的所有的方法和属性(遗传),继承后可以定制自己的方法和属性(变异) class A(): name = "张三" #class 子类名(父类名) class B(A): name1 = '王五' def __init__(self): print(self.name) a = A() b = B() print(b.name) #张三 #张三 class C(B): name = '张三丰' name1 = '李四' c = C() #张三丰 #B继承了A,C又继承了B,C更改了B的name属性,但是又有B的初始化方法,所以打印了张三丰 #上面说明了,子类不光可以新增属性,还可以重写父类的属性 #多重继承(拓扑算法,就近原则),这一点比单继承的java好。 class D(C,A): pass d = D() print(d.name1) #如果上面的继承顺序变成D(A,C)会报错,按照拓扑算法排序,目前的排序为D,C,B,A,O,A,O;这样系统就会认为是D<C<B<A<O; #如果变成了D(A,C),排序变成了D,A,O,C,B,A,O;系统就分不清B与A,O的大小关系了。(个人见解)