我试图通过导入直接简化我的包(如requests
模块)。从__init__.py定义跨模块/全局变量
为此,我认为使用__init__.py
将是最佳选择。因为当用户导入我的包时,调用__init__.py
。然后我添加一些代码,从特定模块导入对象。
请想象一下,那我的包和类对象都具有相同的名字:
# __init__.py
from index import packagename # This is class object
myclass = myclass # This is just example to be substituted, I know it has no effect
print(myclass)
每当包是进口的,Python中记录的MyClass类型:
<class 'packagename.index.packagename'> # "packagename" in the beginning is my package, "packagename" in the end is class object
然而,新的实例到班级没有设置:
<module 'packagename' from 'packagename/__init__.pyc'>
从我的研究,我找不到我的问题的任何显著可靠的答案,但(道歉,如果我错过了什么),但是,总之,我怎么能确定从__init__.py
变量,因此它可以通过用户使用?
因此,无论何时用户导入packagename
,变量packagename
都将是类对象的实例而不是模块。
谢谢!
'myclass = myclass' - 你期望做什么? – user2357112
@ user2357112我对它没有任何期望,只是在我的例子中加入了不恰当的(在这种情况下是微不足道的)变量的定义。我希望从'__init __。py'导入来工作,虽然... – ShellRox
真的不清楚你想在这里做什么。将'myclass'导入'__init __。py'可以让你从''''package'import myclass'而不是'从package.index import myclass'中执行''。你还希望做什么? –