具有默认参数和命名空间的模块函数?
Module functions with default arguments and namespaces?
我想把一些常用的功能收集到一个模块中my_module。这些函数必须具有默认参数,这些参数是工作区中的变量。当我将这些函数从主代码中移出到模块中,然后将它们导入到主代码中时,由于找不到这些默认参数,我得到了一个错误。
y = 1;
def f(x, y=y):
sum = x+y
return sum
f(1)
而当 f 是从 my_module 导入时,我们有
y = 1
from my_module import f
f(1)
如何调整后面的代码使其与第一个代码一样工作?
my_module.py:
y = 1
def f(x, y = None):
if y is None:
y = globals()['y']
sum = x+y
return sum
test.py
import my_module
my_module.y = 2
f = my_module.f
print(f(1))
我想把一些常用的功能收集到一个模块中my_module。这些函数必须具有默认参数,这些参数是工作区中的变量。当我将这些函数从主代码中移出到模块中,然后将它们导入到主代码中时,由于找不到这些默认参数,我得到了一个错误。
y = 1;
def f(x, y=y):
sum = x+y
return sum
f(1)
而当 f 是从 my_module 导入时,我们有
y = 1
from my_module import f
f(1)
如何调整后面的代码使其与第一个代码一样工作?
my_module.py:
y = 1
def f(x, y = None):
if y is None:
y = globals()['y']
sum = x+y
return sum
test.py
import my_module
my_module.y = 2
f = my_module.f
print(f(1))