1、方法【类里面的函数】:类和对象的动作和行为
- 类方法: 类共有的动作和行为
- 实例方法:某个具体的对象具备的动作和行为
2、实例方法:某个具体的对象具备的动作和行为
-
__init__函数-- 就是方法。 实例方法–特殊的实例方法。
-
1)在类里面直接def定义一个函数,默认就是实例方法。
-
- 实例方法里可以调用实例属性、类属性。用self.属性名。
-3)实例属性可以被每个实例方法共享
- 实例方法里可以调用实例属性、类属性。用self.属性名。
2、实例方法的调用:
实例方法一定要手动调用才能运行,不会init函数自动调用
- 类外面调用:通过对象调用。对象.实例方法()
- 类里面调用:实例方法可以相互调用,self.实例方法名
3、实例方法里可以调用实例属性、类属性,实例属性可以被每个实例方法共享
- 注意:实例方法()定义参数, 参数只能被方法本身使用,不能被其他方法共享,区别于实例属性。=== 了解。
4、类方法: 类共有的动作和行为 – 不掌握也可以,用的比较少。使用有很多局限性
- 4.1、定义:在方法上面加上申明 @classmethod, 在类方法里只能调用类属性【cls.类属性】,不能调用实例属性。
- 4.2、调用类方法
- 在类外面调用类方法:通过类可以调用,也可以通过对象调用。因为类是公共的。
- 在类里面调用类方法:
- 类方法可相互调用类方法,【cls.类方法】,不能调用实例方法。
- 实例方法也可调用类方法, self.类方法
# 定义类方法@classmethod # 用来申明是一个类方法def get_engine(cls): # cls在类里面表示类本身print("这是一个类方法....")print(f"车的引擎是:{cls.engine}") # 类方法可以获取类属性,不可以获取实例属性
两种方法对比结论:实例方法因为更强大,所以如果以后搞不清楚应该定义成什么方法,就定义为实例方法。
总结:方法的参数和方法相互调用。类似于函数的参数和调用。
1)实例方法里面调用实例属性。必须通过self调用
实例属性 是所有的实例的方法可以共享属性的值。
实例方法里可以调用类属性,也是self.类属性
2)实例方法可以实现相互之间的调用 == 相当于函数相互调动
self.实例方法进行调用。
3)实例方法可以定义参数,参数只有方法本身可以用 ,不能实现实例对象之间的共享。要共享定义为实例属性。【参数和实例属性区别】