小编Dan*_*ger的帖子

从项目中的两个单独的脚本访问库中的类实例

我进行了全面搜索,无法提出合理的搜索查询来产生有用的结果。我将尝试通过一个简单的示例(已测试)对此进行解释。

假设我有一些小的自定义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”中需要唯一实例时将其实例化,但是我发布此问题的主要原因是为了解决问题这个特定的概念。

python import scoping

5
推荐指数
1
解决办法
52
查看次数

标签 统计

import ×1

python ×1

scoping ×1