【问题标题】:Python import updated reference [duplicate]Python导入更新参考[重复]
【发布时间】:2017-12-05 15:25:03
【问题描述】:

我想导入一个对象的引用,它的值在导入引用的初始文件被python解析后更新。例如:

runner.py

from store import modify_var
from importer import a_function

print('>>runner')
modify_var()
a_function()

store.py

my_var = None

def modify_var():
    global my_var
    my_obj = MyObj()
    my_var = my_obj
    print('>>store, my_var has been set to: {0}'.format(my_var))

class MyObj(object):
    x = 2

importer.py

from store import my_var

print('>>importer, my_var outside function (before has been set): {0}'.format(my_var))

def a_function():
   print('>>importer, my_var after is has been set: {0}'.format(my_var))

运行 runner.py 后的控制台输出

>>importer, my_var outside function (before has been set): None
>>runner
>>store, my_var has been set to: <tests.store.MyObj object at 0x7fbfc683a1d0>
>>importer, my_var after is has been set: None

我试图弄清楚如何导入 my_var,这样当我在函数中调用它时,它的值不是 None。

【问题讨论】:

  • 你能定义a_function 来接受一个参数,然后在调用它时传递 updated 变量吗?你的函数都没有返回任何东西,也许你应该探索一下。

标签: python


【解决方案1】:

我认为它不喜欢你在 store.py 中给它一个值之后声明 my_var 的事实。尝试以下方法之一:

在 store.py 中,创建另一个将 my_var 返回为 none 的方法:

def my_var_none():
    my_var = None
    return my_var

然后,将 runner.py 保持原样,放在 importer.py 中:

from store.py import my_var_none()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-31
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 2014-11-03
    • 2016-08-26
    • 2013-06-13
    • 1970-01-01
    相关资源
    最近更新 更多