第9次作业
1. 什么是类和实例并说明他们之间的关系
类(class):类是一个抽象的概念,是万事万物的抽象,是一类事物的共同特征的集合。
用计算机语言来描述类,是属性和方法的集合。
实例or对象(instance、object):实例是类的具象,是一个实体。
对于我们每个人这个个体,都是抽象概念人类的不同实体。
类和实例的关系
例如:人类和单独的一个人,单独的一个人是人类的实例,单独的一个人有自己的各种信息如:身高、体重、会的技能和动作等等,这就是实例的属性,而不同的人有不同的属性,所以这些属性不能保存到人类中,因为人类是抽象概念,不能保留每个具体的个体的值。
2. 类的实例方法、类方法和静态分别如何定义举例说明,并总结它们的应用场景
实例方法:是最常见的定义方法的方式。
class Person:
def showself(self):
print('普通方法,和自己有关。self={}'.format(self))
在调用showself时必须传入一个实参
类方法:相对实例方法使用较少
class Person:
@classmethod
def class_method(cls):
print('类方法')
print("{0}'s name = {0.__name__}".format(cls))
cls.HEIGHT = 170
在类定义中,使用@classmethod装饰器修饰的方法
在调用时必须至少有一个参数,且第一参数留给了cls,cls指代调用者即类对象自身
cls这个标识符可以是任意合法名称,但是为了易读,请不要修改
通过cls可以直接操作类的属性
通过类、实例都可以非常方便地调用类方法。classmethod装饰器内部将类(或提取实例的类)注入到类方法的第一个参数中。
静态方法:用的极少,偶尔在源码中见到
class Person:
HEIGHT = 180
@staticmethod
def static_method():
print('静态方法')
print(Person.HEIGHT)
在类定义中使用@staticmethod装饰器修饰的方法
调用时,不会隐式的传入参数
通过类、实例都可以调用静态方法,不会像普通方法、类方法那样注入参数。
静态方法,只是表明这个方法属于这个名词空间。函数归在一起,方便组织管理。
3. MRO是什么,描述其查找顺序
4. Mixin是什么,描述其应用场景
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端