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:面向对象的主要内容,如果未能解决你的问题,请参考以下文章

day24 面向对象,交互,组合,命名空间,初始继承

铁乐学python_day24_面向对象进阶1_内置方法

day2023-3-24-面向对象

重修课程day24(面向对象5之封装)

python学习_day24_面向对象三大特性之继承

目录大纲