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
文件

在my
main.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包内。您需要从实际位置导入内容。我的意思是,我猜您的答案按原样工作,但我想知道为什么导入*不工作,因为有一些资源表明它应该工作。