码迷,mamicode.com
首页 > 编程语言 > 详细

Python学习第七天

时间:2016-03-09 23:53:15      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:

类的静态方法 类方法及属性:

接着上节课的面向对象编程的继承和多态性:

经典类和新式类,从字面上可以看出一个老一个新,新的必然包含了更多的功能,也是之后推荐的写法,从写法上区分的话,如果 当前类或者父类继承了object类,那么该类便是新式类,否则便是经典类。

技术分享

技术分享
 1 class D:
 2 
 3     def bar(self):
 4         print D.bar
 5 
 6 
 7 class C(D):
 8 
 9     def bar(self):
10         print C.bar
11 
12 
13 class B(D):
14 
15     def bar(self):
16         print B.bar
17 
18 
19 class A(B, C):
20 
21     def bar(self):
22         print A.bar
23 
24 a = A()
25 # 执行bar方法时
26 # 首先去A类中查找,如果A类中没有,则继续去B类中找,如果B类中么有,则继续去D类中找,如果D类中么有,则继续去C类中找,如果还是未找到,则报错
27 # 所以,查找顺序:A --> B --> D --> C
28 # 在上述查找bar方法的过程中,一旦找到,则寻找过程立即中断,便不会再继续找了
29 a.bar()
经典类多继承
技术分享
 1 class D(object):
 2 
 3     def bar(self):
 4         print D.bar
 5 
 6 
 7 class C(D):
 8 
 9     def bar(self):
10         print C.bar
11 
12 
13 class B(D):
14 
15     def bar(self):
16         print B.bar
17 
18 
19 class A(B, C):
20 
21     def bar(self):
22         print A.bar
23 
24 a = A()
25 # 执行bar方法时
26 # 首先去A类中查找,如果A类中没有,则继续去B类中找,如果B类中么有,则继续去C类中找,如果C类中么有,则继续去D类中找,如果还是未找到,则报错
27 # 所以,查找顺序:A --> B --> C --> D
28 # 在上述查找bar方法的过程中,一旦找到,则寻找过程立即中断,便不会再继续找了
29 a.bar()
新式类多继承

注:在3.0的环境下 经典类和新式类在继承的时候都是广度优先!!!

多态:

多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。
那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。

注意:在其他语言(例如:Java,c#)定义函数的参数时必须定义参数的类型,在这里并没有!!!

技术分享
 1 class F1:
 2     pass
 3 
 4 
 5 class S1(F1):
 6 
 7     def show(self):
 8         print S1.show
 9 
10 
11 class S2(F1):
12 
13     def show(self):
14         print S2.show
15 
16 def Func(obj):
17     print obj.show()
18 
19 s1_obj = S1()
20 Func(s1_obj) 
21 
22 s2_obj = S2()
23 Func(s2_obj) 
View Code

类的成员:

类的成员可以分为三大类:字段(变量)、方法和属性

技术分享

注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段。而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份。

 

Python学习第七天

标签:

原文地址:http://www.cnblogs.com/Peony-Y/p/5259991.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!