python面向对象-我的理解

参考:博客 Vamei 、 廖雪峰

面向对象概念


 

面向对象完全可以按照自然界生物分类法来理解。

当然,它不会有自然界那么复杂。

因为我专业的关系,因此个人觉得微生物来举例很容易理解。


所有的微生物都具有:形态微小,结构简单的特点,而且他们的繁殖速度都很快,他们的繁殖速度是可以计算的,如果知道时间的话。

微生物具体还可分为真菌类、病毒类等,他们分别又具有自己的特点。

比如,真菌类一般都具有细胞核,还可产生抗生素,而产生的的抗生素质量是可以计算的。

病毒类一般都没有细胞核,病毒会杀死细胞,杀死的数量也可以计算。

 1 class microbe(object):  # 父类
 2     size = 'little'
 3     structure = 'easy'
 4     # 变量属性,也就是所有微生物都具有的属性
 5 
 6     def Fanzhi(self, x, time):  # 方法属性,微生物的繁殖数量
 7         number = 1
 8         number = number * (2**(time // x))
 9         return number
10 
11 
12 class zhenjun(microbe):  # 子类
13     xibaohe = True
14     # 子类变量属性
15 
16     def kangshengsu(self, k, m):
17         weight = 0
18         weight = weight + m / k
19         return weight
20      # 子类方法属性
21 
22 
23 class virus(microbe):#子类
24     """docstring for virus"""
25     xibaohe = False#子类变量属性
26 
27     def killcell(self, s, i):
28         num = 1
29         num = num * 3**(i // s)
30         return num
31         #子类方法属性
32 summer = zhenjun()
33 hn4 = virus()
34 print(summer.xibaohe)
35 print(summer.size)
36 print('number = ', summer.Fanzhi(2, 9))
37 print('抗生素质量为', summer.kangshengsu(4, 18), 'g')
38 print('杀死细胞数量为', hn4.killcell(3, 9), '')
39 print('number = ',hn4.Fanzhi(2,8))

 通过代码尝试,可以发现子类可以用父类的属性和方法属性,但是父类不可以用子类的。

定义对象summer(实例)属于真菌类,这样他就有了微生物类的类属性,以及真菌类的子类属性,以及它们的方法属性,简单来说,

就是所有的属性,

它可通过

summer.属性    来调用,

也就是   对象.属性

 总结--引用自  博客Vamei


将东西根据属性归类 ( 将object归为class )

方法是一种属性,表示动作

用继承来说明父类-子类关系。子类自动具有父类的所有属性。

self代表了根据类定义而创建的对象。

建立对一个对象: 对象名 = 类名()

引用对象的属性: object.attribute

原文地址:https://www.cnblogs.com/sunshinewang/p/6838755.html