因此,当您提供错误的变量名称时,这是默认行为:
>>> foo
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'foo' is not defined
>>>
我正在寻找的是:
>>> set_name_error_handling('assign_default',None)
>>> foo
>>>
(foo
自动分配无)
我在动态参数处理上使用它,并且想要使用一种行为,如果没有给出参数,则使用默认值。我有一些我无法控制的代码使用None
处理。我可以只添加一些像下面这样的动态标题,并通过不更改所有其他代码来保存它们吗?
# This may work in python2 but not python3
def foo(self,params):
local = locals()
for key in params:
local[key] = params[key]
# Do important things onwards, cannot change
编辑:一种解决上述特定问题的方法是提供一个默认选项,让我们说:
options = foo.get_default_params()
# do whatsoever changes to modify options
result = foo.call(options)
这假定默认参数表可用。如果你甚至没有默认参数表,或者无法生成一个(无限可能的参数,如print()),它仍然可行吗?
编辑:要将问题集中到方法中,我已经重新标记了标题并删除了引用以覆盖NameError。
答案 0 :(得分:0)
我不认为Python提供类似的东西。但是,您可以随时执行:
ObjLoanIncreaseRequest
如果你试图定义一个函数,我会这样定义:
try:
foo
except NameError:
foo = None
# do whatever with foo
您可以将其称为def baz_func(foo=None):
# function body here
或baz_func()
。