【发布时间】:2016-10-29 00:47:03
【问题描述】:
(python) 问题在这里,我还没有找到一个好的解决方法。
假设我在源文件 myfunc.py 中有一个布尔标志
# myfunc.py
bool_val = False
# Potentially change flag
if (some_condition_is_met):
bool_val = True
# Many other function calls down the line
do_other_stuff()
现在,假设“do_other_stuff”调用了一系列其他函数,例如:
do_other_stuff() 调用 func1(),然后调用 func2(),然后调用 func3()嗯>... 最终 importantfunc() 被调用。
现在,“importantfunc”需要知道“bool_val”的值是什么
# importantfunc.py
if bool_val is True:
do_something()
elif bool_val is False:
do_something_else()
问题是我的 SW 架构使得将“bool_val”的值向下传递到函数调用的级联是非常不切实际的。
有人对如何解决这个问题有任何想法吗?或者我错过了什么明显的东西?提前致谢。
【问题讨论】:
-
根据您的情况,您可以将这些函数放在一个类中,将布尔值存储为开头的字段,并在结尾处访问它。
-
谢谢,Alex,但不幸的是,这些函数需要在单独的源文件中。 (这些函数实际上是更广泛的面向 obj 的架构中的类方法,但为了简化定义问题,我将其保留为简单函数)
-
是函数内部的初始赋值吗?如果不是,应该是设置了一个全局变量,函数会自动使用这个全局变量。
标签: python global-variables parameter-passing