标签:object @class 代码 alt 场景 img bsp png 形式
属性:类属性、实例对象属性
方法:实例方法、类方法、静态方法
类可以调用哪些内容:类属性、类方法、静态方法
class A(object): # 类属性 class_a = 20 def __init__(self): # 实例对象属性 self.a = 10 # 实例方法 def a_print(self): print("a_print") # 类方法 @classmethod def class_print(cls): print(‘class_print‘) # 静态方法 @staticmethod def static_print(): print("static_print") # 类调用类属性,不能调用实例对象属性 print(A.class_a) # 使用实例化对象调用实例对象属性 print(A().a) # 使用类调用类方法 A.class_print() # 使用类调用静态方法 A.static_print() # 调用实例方法的两种方式 A.a_print(A()) A().a_print()
在一个类中想要调用另一个类的方法和属性的方法:继承、属性赋值的形式
class A(object): class_a = 20 def __init__(self): self.a = 10 def a_print(self): print("a_print") @classmethod def class_print(cls): print(‘class_print‘) @staticmethod def static_print(): print("static_print") # 继承 class B(A): def b_print(self): print("b_print") B().b_print() B().a_print() # 属性赋值的形式 class C(object): obj_a = A() def c_print(self): print(‘c_print‘) # 调用A中的方法 C.obj_a.a_print()
super作用:super() 函数是用于调用父类(超类)的一个方法。
super使用场景:重写父类方法,在父类方法的基础上,新增一些业务逻辑
使用@property装饰器可以直接通过方法名来访问方法,不需要再在后面使用"()"
class A(object): def a_print(self): print("a_print") class B(A): def a_print(self): # 调用父类方法 super().a_print() print("add_data") @property def data(self): print("data") B().a_print() # 直接以调用属性的形式调用方法 B().data
标签:object @class 代码 alt 场景 img bsp png 形式
原文地址:https://www.cnblogs.com/last2233/p/13814406.html