【发布时间】:2020-05-15 19:38:19
【问题描述】:
我有一个通过命令行参数设置的标志。该标志由嵌套许多层的函数使用。将该标志(或任何其他变量)传递给深度嵌套函数的pythonic方法是什么?像我在下面所做的那样将它添加到每个参数列表中感觉不对。
def func3(flag var3, var4):
...
# flag is used only here
if flag;
do something
else:
do something else
def func2(flag, var1, var2):
...
x=func3(flag, c, d)
def func1(flag, var1, var2)
...
y = func2(flag, a, b)
def def main():
...
parser.add_agrument('-f', '--flag', action='store_true' default=false)
...
result = func1(flag, foo, bar)
【问题讨论】:
-
您不使用课程的任何特殊原因?如果您创建了一个类变量并将所有这些函数都设为类方法,则可以很容易地消除这种情况。
-
如果 flag 只声明一次并且不改变,这可能是我建议使用全局变量的少数情况之一