Python继承中的变量
- 编程知识
- 2023-06-14
- 3
本文将会详细阐述Python中继承中的变量,包括实例变量、类变量、静态方法和类方法。
一、实例变量
实例变量指的是继承类中通过实例化对象所创建的变量,每个实例变量属于各自不同的对象。
class A: def __init__(self, a): self.a = a class B(A): def __init__(self, a, b): A.__init__(self, a) self.b = b b1 = B(10, 20) b2 = B(30, 40) print(b1.a) # 10 print(b1.b) # 20 print(b2.a) # 30 print(b2.b) # 40
在上面的代码中,我们定义了一个父类A和子类B,子类B继承父类A。通过实例化对象b1和b2,我们可以创建出两个实例变量a和b,它们分别属于各自不同的对象。
二、类变量
类变量指的是继承类中通过直接在类中定义的变量,它们属于所有该类实例的共同变量。
class A: var1 = "class variable" class B(A): var2 = "subclass variable" print(A.var1) # class variable print(B.var1) # class variable print(B.var2) # subclass variable
在上面的代码中,我们定义了一个父类A和子类B,我们通过类名就可以访问到类变量var1和var2。类变量属于所有该类实例的共同变量,所以在子类中也可以访问到父类定义的类变量。
三、静态方法
静态方法是继承类中定义的一种普通函数,只不过被包含在类定义中而不是在类实例中。我们可以使用@staticmethod装饰器来声明一个静态方法。
class A: @staticmethod def my_static_method(a, b): return a + b class B(A): pass print(A.my_static_method(1, 2)) # 3 print(B.my_static_method(3, 4)) # 7
在上面的代码中,我们定义了一个父类A和子类B,父类A中定义了一个静态方法my_static_method。我们可以通过类名直接调用静态方法。
四、类方法
类方法是继承类中的一种方法,可以访问类变量和类方法,我们可以使用@classmethod装饰器将一个类方法标识出来。
class A: var1 = "class variable" @classmethod def my_classmethod(cls): return cls.var1 class B(A): var2 = "subclass variable" print(A.my_classmethod()) # class variable print(B.my_classmethod()) # class variable
在上面的代码中,我们定义了一个父类A和子类B,父类A中定义了一个类方法my_classmethod。我们可以通过类名直接调用类方法,并且类方法可以访问类变量var1。