我有函数和变量分布在多个文件上,并且试图不创建导入网络。
在一个文件中包含一个函数。在另一个变量以及这些函数的应用(总计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
。
如果有人可以指向正确的方向或告诉我我在做什么,那将是非常感谢的。
使用 None
:
def function(arg1, arg2=None):
if arg2 is None:
arg2 = a
return arg1 + arg2
a = 5
function(4)
也就是说,使用像a
这样的全局影响功能结果可能不是最佳方法。全球群体使代码难以推断,并且很难测试。