Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将类拆分为需要访问类实例的文件_Python_Class_Oop - Fatal编程技术网

Python 将类拆分为需要访问类实例的文件

Python 将类拆分为需要访问类实例的文件,python,class,oop,Python,Class,Oop,我有一个例子,展示了两个类,它们的方法需要与另一个类实例联系。如何将这些类拆分为文件 A类: 定义初始化(self,name): self.name=名称 def do_某事(自我): 打印(b.名称) B类: 定义初始化(self,name): self.name=名称 def do_某事(自我): 印刷品(姓名) a=a(“a”) b=b(“b”) a、 做某事 我建议您将代码分为以下模块: 模块a.py class A: def __init__(self, name):

我有一个例子,展示了两个类,它们的方法需要与另一个类实例联系。如何将这些类拆分为文件

A类:
定义初始化(self,name):
self.name=名称
def do_某事(自我):
打印(b.名称)
B类:
定义初始化(self,name):
self.name=名称
def do_某事(自我):
印刷品(姓名)
a=a(“a”)
b=b(“b”)
a、 做某事

我建议您将代码分为以下模块:

模块a.py

class A:
    def __init__(self, name):
        self.name = name

    def do_something(self, b):
        print(b.name)
class B:
    def __init__(self, name):
        self.name = name

    def do_something(self, a):
        print(a.name)
from module_a import A
from module_b import B

a = A("A")
b = B("B")
a.do_something(b) # output: B

模块b.py

class A:
    def __init__(self, name):
        self.name = name

    def do_something(self, b):
        print(b.name)
class B:
    def __init__(self, name):
        self.name = name

    def do_something(self, a):
        print(a.name)
from module_a import A
from module_b import B

a = A("A")
b = B("B")
a.do_something(b) # output: B

main.py

class A:
    def __init__(self, name):
        self.name = name

    def do_something(self, b):
        print(b.name)
class B:
    def __init__(self, name):
        self.name = name

    def do_something(self, a):
        print(a.name)
from module_a import A
from module_b import B

a = A("A")
b = B("B")
a.do_something(b) # output: B


为什么这些类需要全局访问彼此的实例?这会破坏类的好处,因为这意味着每个类只能有一个实例。
A
B
必须满足哪些约束条件?@MisterMiyagi这个例子非常简单。我有一个很大的文件,里面有很多类是PyQt5窗口,必须连接。如何连接?每件事都与每件事联系在一起吗?新窗口会出现并消失吗?似乎每个连接的窗口都应该明确地告诉对方,而不是假设每个其他窗口都是全局的。对不起。。。我把我的问题简单化了。解释起来相当复杂。我已经用Gabb的回答解决了,谢谢!