Fro*_*y Z 19 python variables scope coding-style module
我目前正在学习Python,我必须从事Python 2.7项目.
在模块本身的功能中访问"模块范围"变量对我来说有点混乱,我没有成功找到令人满意的方式.
到目前为止我的尝试:
方式1:
my_module.py
my_global_var = None
def my_func():
global my_global_var
my_global_var = 'something_else'
Run Code Online (Sandbox Code Playgroud)
在这里,我认为混淆本地和"模块范围"变量可能非常容易.
方式2:
my_module.py
import my_module
my_global_var = None
def my_func():
my_module.my_global_var = 'something_else'
Run Code Online (Sandbox Code Playgroud)
在这里,必要时,"my_module"的名称不能像"方式1"那样容易地改变.另外,将模块导入自身听起来很奇怪.
你会推荐什么?或者你会推荐别的吗?谢谢.
zee*_*kay 25
您可能想要阅读Python的命名空间.方式1是正确的但通常是不必要的,从不使用2.更简单的方法是使用dict(或类或其他对象):
my_globals = {'var': None}
def my_func():
my_globals['var'] = 'something else'
Run Code Online (Sandbox Code Playgroud)
赋值始终进入最内层范围,始终首先搜索最内层范围,因此需要global关键字.在这种情况下,您没有分配名称,因此没有必要.
| 归档时间: |
|
| 查看次数: |
22000 次 |
| 最近记录: |