Python:在导入类之后,打印在_init__u; py.py中声明的变量
我有一个名为Python:在导入类之后,打印在_init__u; py.py中声明的变量,python,class,import,module,Python,Class,Import,Module,我有一个名为main.py的文件,在它旁边我有一个名为mymodule的文件夹,里面有和myclass.py文件 在mymain.py中,您想导入mymodule,但这还不是全部;我在\uuu init\uuuuuuuuuuupy中有一个名为version='1.0'的变量,导入mymodule后,我想从main.py打印它 我认为\uuuu init\uuuuuuupy的工作方式是,当我导入mymodule时,\uuuuu init\uuuuuupy首先得到“run”?所以我想测试一下这个“理
main.py
的文件,在它旁边我有一个名为mymodule
的文件夹,里面有和myclass.py
文件
在mymain.py
中,您想导入mymodule
,但这还不是全部;我在\uuu init\uuuuuuuuuuupy
中有一个名为version='1.0'
的变量,导入mymodule
后,我想从main.py
打印它
我认为\uuuu init\uuuuuuupy
的工作方式是,当我导入mymodule
时,\uuuuu init\uuuuuupy
首先得到“run”?所以我想测试一下这个“理论”,我把一个变量放入\uuu init\uuuuu.py
中,并在导入mymodule
后打印它
mymodule
中只声明了一个简单的类:
class MyClassWithCtor:
def __init__(self, number1, number2):
self.number1 = number1;
self.number2 = number2;
self.multi = self.__multiply()
def __multiply(self):
return self.number1 * self.number2
我只是在实例化类之后用它打印出multi
变量,所以我知道它是有效的
因此,总而言之:
- 我想通常导入一个由单个类组成的模块
- 但是在导入该模块时,在我的
\uuuu init\uuuuuuuuuuuupy
中有一个名为version
的变量,我希望在导入后从main.py
打印该变量
我真的不明白你的问题是什么,或者这门课与任何事情都有什么关系
在包的名称空间中可以使用直接在
\uuuu init\uuuuuuupy
中定义的变量
from mymodule import version, myclass
print version
instance = myclass.MyClassWithCtor(1, 2)
是什么阻止您将version='1.0'
放入\uu init\uuuuu.py
?@glglglgl它在那里,但main.py找不到它。首先使用import mymodule
导入模块,然后使用print(mymodule.version)打印version
有什么问题
?@skyking我想从mymodule导入中执行*
导入后,您应该使用print(version)
打印版本。如果我从mymodule导入中执行*
操作,在执行c=MyClassWithCtor(1,2)
时找不到该类。所以,不要这样做。(无论如何,不要这样做,但在这里尤其不要这样做。)但我的意思是,为什么我需要知道模块名称以外的任何东西?什么?我是说,什么?我不明白那个评论是什么意思,我也不知道这和你最初关于访问版本的问题有什么关系。MyClassWithCtor位于myclass模块内,myclass模块位于mymodule包内。您需要从实际位置导入内容。我的意思是,我猜您的答案按原样工作,但我想知道为什么导入*不工作,因为有一些资源表明它应该工作。