【发布时间】:2018-06-02 17:23:39
【问题描述】:
我有一个模块;说它的结构如下:
algorithms
├─ __init__.py
└─ algorithm.py
在我的算法模块中,我有一些全局变量,我想创建一个方便的初始化程序来设置它们。我想对初始化程序的参数使用与 var 相同的名称,但这会导致局部名称和全局名称的冲突。我能想到的最简洁的实现方式是:
lower = None
upper = None
def init_range(lower, upper):
_lower = lower
global lower
lower = _lower
_upper = upper
global upper
upper = _upper
如果这是一堂课,(我认为)我可以做类似self.lower = lower 的事情。有没有更简洁的方法来做我正在为模块全局变量做的事情? algorithm.lower = lower 之类的东西?
编辑:原来我的解决方案不起作用。
【问题讨论】:
-
你不想听到这个,但你的解决方案不起作用,正确的解决方案是避免全局变量。
-
你说得对,它不起作用:(但就我而言,我已经在任何地方都使用了全局变量(这是一个非常简单的例子),没有时间改变它。
标签: python python-2.7