主要内容:函数的定义与调用···型参与实参的使用···python类和对象···对象实例化···类成员访问与权限|···类方法分类···继承

函数的定义与调用:

将常用的代码打包起来,起个名字就是函数的定义。

def 函数名():                  调用:函数名();

        代码块

型参与实参的使用:  形参(函数定义时里的占位名字)实参(调用时的真实数据)

def say(name,score1,score2):
    print(f"我叫{name},数学{score1}分并且语文{score2}")
say("李四",98,116)

如何封装一个函数就是如何定义一个函数:需要哪里变化就把哪里变成变量来代表,然后再把这个变量放到参数列表的位置当中去。

函数的模块:就是功能包。就是把一堆的函数代码放到一个文件中,以备后用。

导入模块需要import,可以导入整个模块(并重命名),可以导入模块中的某个函数

导入模块作用:使用别人已经写好的功能,不用自己重复写代码。

模块名称:__name__

__name__是每一个文件每个文件自带的隐藏变量。用来判断这个文件是直接运行,还是被当作模块被其他文件使用。

例如:print(__name__)在当前文件直接执行,会输出__main__

被当作模块被其他文件使用时,会输出当前文件的名字。

最常用的用法:

def fun():

print("我是函数")

# 只有直接运行时,才执行下面代码

if __name__ == "__main__":

        fun()

        print("程序开始运行")

python的类和对象:

对象里有属性与方法组成。(其中方法就是函数,只不过在对象中叫方法)

类就是对象的抽象模板,对象是类的具体实例。

用类创建对象时,需要动态初始化赋值:__init__方法来实现。

__init__方法介绍:用来初始化赋值对象的

def __init__(self, a, b, c, d):(其中self是指创建的那个对象,abcd就是赋值的属性)

对象实例化代码:

python面向对象的封装与私有属性:

以__开头定义的属性,是私有属性。只能被成员方法调用或修改。

封装的核心:将属性和方法绑定在一起,对外只暴露接口。(这个接口就是成员方法)

封装还可以在成员方法里加校验,使得数据更加安全,合理

类就是面向对象编程因此要先创建一个实体对象,才能赋值并且调用成员方法

计算属性:

计算属性的作用:通过装饰器(@property.@age.setter等)可以让方法伪装成属性,使得外部调用更简单,也不用知道通过哪个方法得到哪些属性。

虽然他们的方法名相同,但是python或根据你的操作,自动匹配对应的修饰器

注意点:用age装饰器创建的这个属性可以不和私有属性相关联。

调用的代码:

python的继承与方法重写:

python的重写没有关键字,只需要子类(父类)即可。

方法重写时可以完全重写所有代码,也可以自己写的一些逻辑代码加调用父类的同名方法。

继承扩展:就是添加属性,添加方法。

添加属性时需要重写初始化方法,调用父类初始化方法,再传子类属性

python的多态:

多态的定义:预先写好几个类,每个类的方法名完全相同,方法体不同。再通过外部的一个类来实现,绑定哪个类就实现哪个类的方法。  (一套调用代码,适配无数角色)

演示代码:

类方法分类:

类属性:属于类本身的属性,但是每个依靠类创建的实例都拥有这个类属性。

作用就是让每个对象实例共享,节省内存

类方法:属于类本身的方法,用来专门操作类属性的方法。(因为让普通方法操作类属性会有问题)

属性查找机制:可以使用 类.类的属性/方法来访问。也可以使用 对象.类的属性/方法来访问类的属性和方法。

访问机制:向上查找:当使用 对象.xxx 没有就会访问 类.xxx

演示代码:

当创建了实例对象的teacher属性,打印stu.teacher就是王五,如果没创建,他就会找类属性中的teacher属性

静态方法:使用@staticmothod修饰,不需要传入类和对象时写,相当与类里普通方法。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐