1. 面向对象类的基本使用

知识点:

  • 属性:类属性、实例对象属性

  • 方法:实例方法、类方法、静态方法

  • 类可以调用哪些内容:类属性、类方法、静态方法

代码示例:

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()


2. 面向对象类的调用和属性

知识点:

  • 在一个类中想要调用另一个类的方法和属性的方法:继承、属性赋值的形式

代码示例:

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()


3. 面向对象super和@property的使用

知识点:

  • 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