所以假设我有一个类a,而类B可以将类a作为其成员,并使用类a的功能来完成这项工作,比如这个
class B:
def __init__(self, A):
self.A = A
def do_something(self):
# some other jobs ....
self.A.do_the_job()
这是一个简单的设计。然而,在我的情况下,类A也可以在B之外访问和修改,那么这个设计有点奇怪,因为虽然A是B的成员类,但实际上A可能在B之外改变其状态。因此,我将其更改为这个设计
class B:
def __init__(self):
pass
def do_something(self, A):
# some other jobs ....
A.do_the_job()
它绝对是完美的,唯一丑陋的是,现在每次当我调用B.do_something
时,我都需要传递类A作为它的参数。实际上,类B还有其他几个函数也将使用类A。
我想知道是否有更好的设计模式来处理这种情况?
很简单:
class A:
def do(self):
print(“Hello from A”)
class B:
def run(self):
A().do()
print(“Now in B”)
因此,是的,您可以通过这种方式访问另一个类中的一个类。记住,如果你的类在不同的文件中,你必须使用这样的行:
from mymodule import A
它也能正常工作