实例方法调用
在类A中创建类B的实例,并在类A的方法中通过这个实例调用类B的方法。
class B:
def method_b(self):
print("This is method B")
class A:
def __init__(self):
self.b = B()
def method_a(self):
print("This is method A")
self.b.method_b() 调用类B的方法
a = A()
a.method_a() 调用A类的方法
类方法调用
在类A中创建类B的类对象,并在类A的方法中通过这个类对象调用类B的类方法。
class B:
@classmethod
def class_method_b(cls):
print("This is class method B")
class A:
@classmethod
def class_method_a(cls):
print("This is class method A")
B.class_method_b() 调用类B的类方法
A.class_method_a() 调用类A的类方法
组合
在类A中实例化类B的对象,并在类A的方法中使用这个对象。
class B:
def method_b(self):
print("This is method B")
class A:
def __init__(self):
self.b = B()
def method_a(self):
print("This is method A")
self.b.method_b() 使用类B的对象调用方法
a = A()
a.method_a() 调用A类的方法
继承
如果类B继承自类A,则可以直接在类B中调用类A的方法。
class A:
def method_a(self):
print("This is method A from parent class A")
class B(A):
def method_b(self):
print("This is method B from child class B")
super().method_a() 调用父类A的方法
b = B()
b.method_b() 调用类B的方法,该方法调用了类A
直接调用
如果两个类位于同一个模块中,可以直接通过类名调用另一个类的方法。
class A:
def method_a(self):
print("This is method A from class A")
class B:
def method_b(self):
print("This is method B from class B")
A.method_a() 直接调用类A的方法
B.method_b() 直接调用类B的方法
以上是Python中类之间相互调用的几种常见方式。您可以根据具体需求选择合适的方法