python函数的面向对象——面向对象设计

经过多少个函数式编号演进,通晓面向对象设计

def01.py

 1 dog1 = {
 2     'name':'元昊',
 3     'gender':'母',
 4     'type':'藏獒'
 5 }
 6 dog2 = {
 7     'name':'李李',
 8     'gender':'公',
 9     'type':'腊肠'
10 }
11 
12 def jiao(dog):
13     print('一条狗[%s],汪汪'%dog['name'])
14 
15 def yaoren(dog):
16     print('一条狗[%s]正在咬人'%dog['type'])
17 
18 jiao(dog1)
19 yaoren(dog1)
20 yaoren(dog2)

 def02.py

 6 
 7 def dog():
 8     def jiao(dog):
 9         print('一条狗[%s],汪汪'%dog['name'])
10 
11     def yaoren(dog):
12         print('一条狗[%s]正在咬人'%dog['type'])
13 
14     dog1 = {
15         'name': '元昊',
16         'gender': '母',
17         'type': '藏獒',
18         'jiao':jiao,
19         'yaoren':yaoren
20     }
21     return dog1
22 
23 d1 = dog()
24 d1['jiao'](d1)

def03.py

 6 
 7 def dog(name,gender,type):
 8     def jiao(dog):
 9         print('一条狗[%s],汪汪'%dog['name'])
10 
11     def yaoren(dog):
12         print('一条狗[%s]正在咬人'%dog['type'])
13 
14     dog1 = {
15         'name': name,
16         'gender': gender,
17         'type': type,
18         'jiao':jiao,#内部函数
19         'yaoren':yaoren#内部函数
20     }
21     return dog1#因为作用域的问题,所以一定要用内部的return 返回jiao,yaoren的函数,才能被外部调用
22 
23 d1 = dog('张明','母','腊肠')

24 d1['jiao'](d1)#引入返回的那个数组d1 ,

 

def04.py

 6 
 7 def dog(name,gender,type):
 8     def jiao(dog):
 9         print('一条狗[%s],汪汪'%dog['name'])
10 
11     def yaoren(dog):
12         print('一条狗[%s]正在咬人'%dog['type'])
13 
14     def init(name,gender,type):
15         dog1 = {
16             'name': name,
17             'gender': gender,
18             'type': type,
19             'jiao':jiao,#内部函数
20             'yaoren':yaoren#内部函数
21         }
22         return dog1
23 
24     return init(name,gender,type)
25 
26 d1 = dog('张明','母','腊肠')

26 print(d1['name'],d1['gender'])

27 d1['jiao'](d1)#引入返回的那个数组d1 ,

# 那么1个函数,
#
正是给定分化性质,设置属性到它里面,
#
并且它里面包车型大巴函数使用了这一个属性,完毕了新的动作,
#
通过再次回到方法至2个字典当中,让外部调用那些法子(属性和章程都急需让外部去拜谒,在字典类型个中来讲,是1样的),
#
即实现了所谓的【面向对象】

#
对象在不描述此前什么都不是。
#
对象正是索要描述它的动作和特点,才能去定义它。比如:人,长什么,能做什么样;灯泡,是怎么样,能做怎么着。

#
类是架空的,唯有属性和办法。 dog()函数正是
#
但对象是透过动作和性格的定义的。d一 定义后,正是一条狗了
# 那便是面向对象设计

类仿佛模板,定义后正是2个指标了。


类—–产生—–对象的长河叫抓实例化(实例=对象)

 在python个中,未有须求您早晚要写面向对象的代码。用面向对象的语言,和三个顺序的规划是面对对象的,两者无任何关系。

您写的次序是还是不是面向对象的,和你用的言语是还是不是面向对象的毫不相关系!面向对象设计,只可是是函数/进程式编制程序的变异。关键在于面向对象的规划思路。

 

相关文章