我进行了全面搜索,无法提出合理的搜索查询来产生有用的结果。我将尝试通过一个简单的示例(已测试)对此进行解释。
假设我有一些小的自定义Python库,其中仅包含以下私有类和公共实例:
#!/usr/bin/env python
class _MyClass(object):
def __init__(self):
self.val = "Default"
my_instance = _MyClass()
Run Code Online (Sandbox Code Playgroud)
现在,我还有另外两个python文件(“ file_a”和“ file_b”),最终将从我的库中导入此实例,如下所示。
“ file_a”中的完整代码:
#!/usr/bin/env python
from my_lib import my_instance
my_instance.val = "File A was here!"
import file_b
file_b.check_val()
Run Code Online (Sandbox Code Playgroud)
“ file_b”中的完整代码:
#!/usr/bin/env python
from my_lib import my_instance
def check_val():
print "From 'file_b', my_instance.val is: {}".format(my_instance.val)
Run Code Online (Sandbox Code Playgroud)
如果仅在还包含“ file_b”和“ my_lib”的目录中执行“ file_a”,则结果输出为:
#!/usr/bin/env python
class _MyClass(object):
def __init__(self):
self.val = "Default"
my_instance = _MyClass()
Run Code Online (Sandbox Code Playgroud)
有人可以在我的示例中向我解释'file_b'如何访问与'file_a'相同的实例吗?这与'file_a'中设置的值是全局值有关吗?
顺便说一句,我确实知道我可以再次公开“ MyClass”,并在“ file_a”或“ file_b”中需要唯一实例时将其实例化,但是我发布此问题的主要原因是为了解决问题这个特定的概念。