Python 通过导入的类访问类

Python 通过导入的类访问类,python,python-3.x,Python,Python 3.x,我目前正在从事一个项目,需要将几个文件中的几个类导入到\uuu main\uuuuuuuuuy.py。但是,这些类需要相互交互(例如,文件1中的类A可能需要检查文件2中的类B中的变量)。我试着这样做: class A(object) (code here) if B.var == 1: pass 但是,这会导致错误(未定义B)。有人知道这个问题的解决方案吗?首先,您需要使用完全限定的名称调用B。如果您确实导入了包,并且包中有类B,那么您必须检查package.B.var==1。

我目前正在从事一个项目,需要将几个文件中的几个类导入到
\uuu main\uuuuuuuuuy.py
。但是,这些类需要相互交互(例如,文件1中的类A可能需要检查文件2中的类B中的变量)。我试着这样做:

class A(object)
  (code here)
  if B.var == 1:
    pass

但是,这会导致错误(未定义B)。有人知道这个问题的解决方案吗?

首先,您需要使用完全限定的名称调用
B
。如果您确实导入了包,并且包中有类B,那么您必须检查
package.B.var==1
。您还可以从包导入B执行
,在这种情况下,您可以执行
B.var==1

其次,如果
var
是属性而不是静态类变量,则需要创建一个对象。将这两者结合在一起,您将得到如下结果:

import package
b_instance = package.B()
print(b_instance.var)

我知道可以将类b导入到类a中,但所讨论的变量将在主程序中频繁修改。如果我导入B并创建另一个B实例,var将设置为B中指定的默认值(并且不会受main中的程序的影响),那么您需要确保主程序具有与
B
相同的实例。有办法吗?在主文件和类A中都有相同的B实例,这样当您编辑一个实例时,它会在另一个实例中自动编辑?如果它是一个类的实例,并且它们确实是相同的实例,则是。更可能的方法是使用
A
属性,这是
B
的一个实例,并直接更改该属性。