想了很久,想不出更好的标题,抱歉。
我对 Python 很陌生,而且(就像许多其他人一样)我只是无法理解import
。
我想我理解“模块”和“包”、类和属性等等。这是我需要澄清的一种具体行为。
假设我有一个文件 foo.py。它有一行:
x = 1
如果在另一个文件中,我“导入 foo”,我可以引用 x。而且,奇妙的是,在另一个文件中,我可以导入 foo,现在这两个文件可以共享 x。为简单起见,将类排除在讨论之外,我相信这是在文件之间共享属性的pythonic方式。
问题来了:公平地说,当i 时import foo
, foo.py 本身(因为没有更好的比喻)是由解释器秘密实例化的?
我意识到如果我在模块中定义一个类,它会遵循传统规则,并且只有在我明确这样做时才会被实例化。但是,python 解释器(通过import
语句)在全局命名空间中实例化我的模块实例是解释属性共享行为的唯一方法。
这是真的?半真?还是我和迷失之地的 Sleestaks 一起游荡?