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

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 ,

 

# 那么一个函数,
# 就是给定不同属性,设置属性到它内部,
# 并且它内部的函数使用了这些属性,完成了新的动作,
# 通过返回方法至一个字典当中,让外部调用这个方法(属性和方法都需要让外部去访问,在字典类型当中来讲,是平等的),
# 即完成了所谓的【面向对象】

# 对象在不描述之前什么都不是。
# 对象就是需要描述它的动作和特征,才能去定义它。比如:人,长什么样,能做什么;灯泡,是什么样,能做什么。

# 类是抽象的,只有属性和方法。 dog()函数就是
# 但对象是经过动作和特征的定义的。d1 定义后,就是一条狗了
# 这就是面向对象设计

类就像模板,定义后就是一个对象了。

由 类-----产生-----对象的过程叫做实例化(实例=对象)

 python当中,没有要求你一定要写面向对象的代码。用面向对象的语言,和一个程序的设计是面对对象的,两者无任何关系。

你写的程序是不是面向对象的,和你用的语言是不是面向对象的无关系!面向对象设计,只不过是函数/过程式编程的演进。关键在于面向对象的设计思路。

对python有兴趣的小伙伴们,可以来加qq群:862672474     大家一起来学习交流~ 群里面更有整理好的学习资料哦~

猜你喜欢

转载自www.cnblogs.com/pythonpipiha/p/9578807.html
今日推荐