如何在同一个包中调用__init__中的变量(Python)

时间:2017-08-22 10:30:10

标签: python import

案件就是这样,我有一个包dir:

<input> cannot appear as a child of <tr>

pkg |_____ __init__.py |_____ foo.py 中的代码:

__init__.py

现在我想在param = 1 def get_param(): return param from .foo import * 中调用来自__init__.py的参数,所以我的代码是这样的:

foo.py

但是,您可以发现我两次致电import pkg new_param = pkg.get_param()

我可以在foo.py中调用来自__init__.py的参数的其他方法是什么?这意味着foo.py就像包中的全局变量一样? THX!

1 个答案:

答案 0 :(得分:0)

请勿在{{1​​}}

中写下get_param()

需要__init__.py个文件才能使Python将目录视为包含包;这样做是为了防止具有通用名称的目录(例如字符串)无意中隐藏稍后在模块搜索路径上发生的有效模块。在最简单的情况下,__init__.py可以只是一个空文件,但它也可以执行包的初始化代码或设置__init__.py变量,稍后将对此进行描述。

所以__all__的目标有助于将给定目录视为包,如

__init__.py

它可以帮助你打电话,

pkg
 |_____  __init__.py
 |_____  foo.py

而是可以将其写入from pkg.foo import *

下的另一个文件中

然后将其称为pkg->param.py