访问不同文件中的对象

时间:2011-04-26 19:23:22

标签: python

假设我有两个这样的文件:

TestClass.py

class Test:
    variable = None

    def __init__(self, value):
        self.variable = value

__主__。PY

from TestClass import Test
TestObject = Test(123)

做以下工作,但我不太喜欢。想要找到一种方法来做到这一点,而不必将对象作为参数传递。

access.py

def testFunction(TestObject):
    print TestObject.variable

有什么想法吗?

无论如何,感谢大家阅读:)

编辑:感谢目前为止的答案。这些名称只是一个例子,在许多不同的文件中导入相同的模块意味着内存中的不同对象执行相同的功能。我希望在任何其他模块中从 main .py访问该对象,而不在内存中有不同的副本。

1 个答案:

答案 0 :(得分:0)

正如一些评论者所指出的,这里的解决方案是导入。

正如迈克所说,导入不会复制任何内容。

test.py

import test2
print test2.dog

test2.py

dog = "puppy"

test3.py

import test2

print test2.dog
test2.dog = "not a dog anymore"
import test1

如果你跑

python test3.py

您将获得以下

puppy
not a dog anymore

正在发生的事情是test2定义变量。导入它会将变量置于test3命名空间下。然后test3更改变量并导入test.py。

类似地,test.py导入test2并打印变量。由于它只是引用变量而不是副本,因此打印了新值而不是最初输入的值。

如果你跑了

python test.py

你会得到

puppy