Python面向对象的程序设计
一、三大编程范式
1、面向过程编程
2、函数式编程
3、面向对象编程
---> 3大编程思想没有高低之分,只有程序员水平高低之分
二、面向对象设计与面向对象编程
类和对象概念:
# 类:把一类事物的相同特征(数据属性)和动作(函数属性)整合到一起就是类,类是一个抽象的概念 # # 对象:就是基于类而创建的一个具体事物,也就是特征和动作整合到一起。对象也有数据属性和函数属性
注意:不是class 写的程序不一定就不是面向对象设计
def dog(name,gender,type): # 狗的动作 def jiao(dog): print('一条狗[%s],汪汪汪' % dog['name']) def chi_shi(dog): print('一条[%s] 正在吃屎' % dog['type']) def init(name,gender,type): dog1 = { 'name':name, 'gender': gender, 'type': type, 'jiao':jiao, 'chi_shi':chi_shi, } return dog1 return init(name,gender,type) d1=dog('元昊','母','中华田园犬') d2=dog('alex','母','藏敖') print(d1) print(d2) d1['jiao'](d1) d2['chi_shi'](d2)
三、类和对象
class Chinese: #定义类 country="china" def __init__(self,name): self.name = name def play_ball(self,ball): print("%s正在打%s"%(self.name,ball)) p1 = Chinese("张三") #Chinese("张三") 实例化--->产生对象 p1 print(p1.__dict__) ##查看对象p1的属性字典 print(Chinese.__dict__) #查看类Chinese的属性字典
##打印结果:
{'name': '张三'} {'__module__': '__main__', 'country': 'china', '__init__': <function Chinese.__init__ at 0x00000243E0E2C7B8>, 'play_ball': <f
注意:实例调用类的方法 不用传入第一个参数 self ,Python内部自动帮我们传入self 参数
p1.play_ball("篮球") #
类调用类的方法 需要传入参数
##类调用类方法 需要传入self参数 Chinese.play_ball(p1,'篮球') #张三正在打篮球 ##另一种方式--->相当于实例调用类方法 p1.play_ball('篮球') Chinese("张三").play_ball('篮球') #张三正在打篮球