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

Posted hsj-jingyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 3.x 学习笔记10 (析构函数and继承)相关的知识,希望对你有一定的参考价值。

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()

 






以上是关于python 3.x 学习笔记10 (析构函数and继承)的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记之魔法方法

Python基础教程 第六章 学习笔记

学习笔记

python学习笔记8--面向对象--属性和方法详解

Python3-笔记-C-004-函数-mapfilterreduce & lambda

Python学习笔记函数式编程-高阶函数