我具有分布在多个文件中的函数和变量,并且试图不创建导入网络。
在一个文件中包含一个功能。在另一个变量中,以及那些函数的应用(总共2个文件)。
功能的应用(显然)需要功能,但功能需要变量。
我希望能够执行以下操作。
[编辑:我想在定义函数后定义变量]
def function(arg1, arg2 = a):
return arg1 + arg2
a = 5
function(4)
我希望输出的是9。
但是,它却产生一个错误,抱怨没有定义a
(它没有超出函数的范围,因此无法读取变量)。
我希望函数仅在函数实际运行后才尝试查找变量。我对装饰器知之甚少,但我认为这可能是实现此目的的一种方法。
如果我做类似
def function_1(a):
def function_2(arg1, arg2 = a):
return arg1 + arg2
a = 5
然后它没有抱怨,但是我现在需要调用function_1
来运行function_2
。
如果不可能将我指向正确的方向或告诉我我在做什么,那将不胜感激。
答案 0 :(得分:2)
使用None
:
def function(arg1, arg2=None):
if arg2 is None:
arg2 = a
return arg1 + arg2
a = 5
function(4)
也就是说,使用a
之类的全局变量来影响函数结果可能不是最佳方法。全局变量使代码难以推理,也难以测试。