python 3.x 学习笔记10 (析构函数and继承)

2018-06-18 01:08:33来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

1.类变量的用途:
大家公用的属性,节省开销(内存)

2.析构函数
在实例释放和销毁的时候执行的,通常用于做一些收尾工作,如关闭一些数据库链接和打开的临时文件

3.私有方法
两个下划线开头,声明该方法为私有方法,不能在类地外部调用。

4.私有属性
两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。

5.

继承的时候重写构造函数要先将父类的所有参数写一遍加上子类变量,然后调用父类,再添加子类的实例化变量。

6.
python2.x 经典类是按深度有先来继承的,新式类是按广度有先来继承的。

python3.x 经典类和新式类都是统一按广度优先来继承的。

 

练习

 1 #父类1
 2 class Person(object):         #新式写法
 3 
 4     def __init__(self,name,age):
 5         #构造函数
 6         self.name = name           #实例化变量(静态属性) ,作用域为实例化本身
 7         self.age = age
 8         self.friends = []
 9 
10     def eat(self):                  # 类方法 功能(动态属性)
11         print('%s will eat something ! '%self.name)
12 
13     def run(self):
14         print('%s will runing !'%self.name)
15 
16     def sleep(self):
17         print('%s will sleep !'%self.name)
18 
19 #父类2
20 class Relation(object):
21     def make_friends(self,obj):
22         print('%s make friend with %s'% (self.name,obj.name))
23         self.friends.append(obj)       #这里传的参数是obj,在这例题里 obj既是 w1
24 
25 
26 #子类
27 class Man(Person,Relation):                      #多继承
28     def __init__(self,name,age,money):           #重写构造函数
29         #Person.__init__(self,name,age,money)     #经典写法
30         super(Man,self).__init__(name,age)        #新式写法,建议用这种写法
31         self.money = money
32 
33     def piao(self):
34         print('%s is piaoing .......'% self.name)
35 
36 
37 #子类
38 class Woman(Person,Relation):                 #多继承
39     def piao(self):
40         print('%s is piaoing .......'% self.name)
41 
42 m1 = Man('张三',20,10)
43 
44 w1 = Woman('lili',21)
45 
46 m1.make_friends(w1)
47 print(m1.friends[0].name)
48 print(m1.friends[0].age)
49 
50 # m1.piao()
51 # m1.eat()
52 # m1.run()
53 # m1.sleep()

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:数值类型(整数,浮点,布尔)

下一篇:关系类型字段 -- Django从入门到精通系列教程