day24:面向对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day24:面向对象相关的知识,希望对你有一定的参考价值。
一、三大编程范式:
面向过程:
面向函数:
面向对象:
二、程序的进化论:
1.编程最开始就是无组织无结构,从简单控制流中按步写指令
2.从上述的指令中提取重复的代码块或逻辑,组织到一起(比方说,你定义了一个函数),便实现了代码重用,且代码由无结构走向了结构化,创建程序的过程变得更具逻辑性
3.我们定义函数都是独立于函数外定义变量,然后作为参数传递给函数,这意味着:数据与动作是分离的
4.如果我们把数据和动作内嵌到一个结构(函数或类)里面,那么我们就有了一个‘对象系统’(对象就是数据与函数整合到一起的产物)。
三、面向对象初见面:
3.1
#你是谁?【名字、属性、特征、。。】你在干什么【动作】?千年的哲学问题!
两者组合起来:实现了两者的交互:对象正在做什么事情!
#狗的属性特征 dog1={‘name‘:‘苑昊‘,‘gender‘:‘母‘,‘type‘:‘腊肠‘} dog2={‘name‘:‘alex‘, ‘gender‘:‘母‘,‘type‘:‘津巴‘} person={‘name‘:‘武sir‘, ‘gender‘:‘母‘,‘type‘:‘人‘} #狗的动作 def jiao(dog): print(‘一条狗[%s],汪汪汪‘%dog[‘name‘] ) def chi_shi(dog): print(‘一条狗[%s]正在吃屎‘ %dog[‘type‘]) jiao(dog1) chi_shi(dog1) chi_shi(dog2) jiao(person)
3.2、实现狗只能执行狗的动作,人执行狗的动作。 解决方法:绑定一块
解决方式:在对象里面加入属性的字段,之后在调用过程中,进行if判断。显得太low!
比较好的办法:
def dog(): # 狗的动作 def jiao(dog): print(‘一条狗[%s],汪汪汪‘ % dog[‘name‘]) def chi_shi(dog): print(‘一条狗[%s]正在吃屎‘ % dog[‘type‘]) # 狗的属性特征+属性 dog1 = {‘name‘: ‘苑昊‘, ‘gender‘: ‘母‘, ‘type‘: ‘腊肠‘, ‘jiao‘: jiao, ‘chi_shi‘:chi_shi } return dog1 d1=dog() #拿到一个字典,里面有函数的内存地址 print(d1) d1[‘jiao‘](d1) >>>
{‘jiao‘: <function dog.<locals>.jiao at 0x10207c9d8>, ‘type‘: ‘腊肠‘, ‘gender‘: ‘母‘, ‘name‘: ‘苑昊‘, ‘chi_shi‘: <function dog.<locals>.chi_shi at 0x10207ca60>} 一条狗[苑昊],汪汪汪
以上是关于day24:面向对象的主要内容,如果未能解决你的问题,请参考以下文章