[英]Making function variables from imported module available in iPython interactive namespace
我想知道如何从IPython交互式命名空间中可用的导入模块中的函数中获取变量。
我有一些要从另一个脚本运行的示例代码,因此将其设置为run_test.py:
def run_test():
a = 5
if __name__ == "__main__":
run_test()
我按如下所示导入模块并调用该函数:
import run_test
run_test.run_test()
如何使变量“ a”在交互式名称空间中可用? 我能做到的唯一方法是使“ a”成为全局变量,然后直接运行run_test.py,而不是导入它并调用该函数。
任何指针表示赞赏。
我相信可以通过返回locals
然后更新本地人来实现。
def main():
# do things
return locals()
if __name__ == '__main__':
new_locals = main()
locals().update(new_locals)
这似乎可行,尽管感觉像是黑客,所以也许并非总是如此。
一个合理的示例,说明您希望在何处:如果要访问函数名称空间中的所有变量,但又不希望脚本的其他部分(例如,其他函数定义)访问该函数的变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.