Python外部类

2024-04-26 06:44:19 发布

您现在位置:Python中文网/ 问答频道 /正文

这看起来很简单,但我找不到解决办法。在

我用我能想到的最简单的例子来展示下面的问题。在

(我的课程安静而复杂;)

文件A.py

import os, sys
import B
from B import *
class _A():
    def __init__(self,someVars):
        self.someVars = someVars
    def run(self):
        print self.someVars

someVars = 'jdoe'
B._B(someVars)

文件B.py与import A不匹配

^{pr2}$

使用import A->;回调:找不到

只有当我这样做的时候-

^{3}$

但是逻辑上A函数执行了2次。在

感谢大家


Tags: 文件runfrompyimportselfinitos
2条回答

由于存在循环依赖关系,您将面临导入错误,您可以继续执行以下操作:

文件A.py:

import os, sys
#Below two import lines does cyclic dependency between file A and B which is wrong and will give import error, 
#commenting below two lines will resolve your import error
#import B 
#from B import * 
class _A():
    def __init__(self,someVars):
        self.someVars = someVars
    def run(self):
        print self.someVars

someVars = 'jdoe'
#B._B(someVars) #comment and respective logic should be moved in B file

另外,您应该使用import Afrom A import _A,如果您使用后者,您应该直接将类调用为:_A(self.someVars),而不是:A._A(self.someVars),此调用约定将用于以前的导入样式(import A),为了更好地理解类和模块的外部使用,可以参考以下链接:https://docs.python.org/3/tutorial/modules.html

没有必要先import X,然后from X import Y。如果需要Y(即使Y*),只需from X import Y。这可能是2次执行的原因。在

还有为什么模块之间有循环依赖关系A -> B, B -> A?也许他们应该放在一个文件里?在

相关问题 更多 >