我正在写一个程序,它从不同的服务请求用户信息,以某种方式将它们组合在一起。管理东西和做一些松散的互动。 我所有的python项目在一定的规模下都会出现问题。导入开始变得递归,处理数据变得烦人。在
我刚刚遇到的一个问题的一个快速的例子可以用这个简单的例子来展示。我有一个主模块(这里是a),它创建主对象(singleton)。 这些对象需要互相调用函数,所以我使用main作为连接器。在这个给定的例子中,我不明白当B被创建时,它从A请求的列表是(None)NoneType。getter函数不一定是我所采用的方法,但它在另一种情况下有帮助。你有什么小贴士,读到重点,如何构造中等规模的python程序。谢谢!在
import B
some_list = None
b = None
def get_list():
return some_list
if __name__ == "__main__":
some_list = [1,2,3]
b = B.B()
print b.my_list
和模块B
^{pr2}$
现在您有两个主模块的副本,每个副本都是
sys.modules
中的一个单独条目:从命令行启动的初始Python脚本始终称为
__main__
。您导入了
A.py
文件作为A
模块。这与__main__
模块分离。是的,同一个源文件提供了这两个模块,但是Python认为它们是不同的。在
因此,第二个副本没有执行}仍然设置为}。在
if __name__ == '__main__':
块,因为__name__
变量被设置为'A'
。因此,A.some_list
和{None
;您希望__main__.some_list
和{不要把代码放在其他模块需要导入才能访问的主入口点。传入这样的依赖项,或者由主模块和其他模块都可以导入的独立模块来管理它们。在
例如,可以将函数传递给
B()
类:相关问题 更多 >
编程相关推荐