如何从第二个参数引用函数的第一个参数?(python 2.7)
假设我有一个通用的函数,像这样:
def do_thing(arg1, default=len(arg1)):
假设参数arg1是这个字符串:"hello, world!"
,那么默认值就是13
。
如果arg1是"oh yeah"
,那么默认值就是7
。
就假设默认值是默认的,我可以通过像do_thing("hello", 1)
这样的方式来改变它。
但是从那时起,我收到了一个错误提示,说arg1没有定义。我该怎么做才能让它正常工作呢?
1 个回答
4
就像这样:
def do_thing(arg1, default=None):
if default is None:
default = len(arg1)
...
或者如果 None
是一个可能有效的值,那就创建一个新的哨兵对象:
_nolen = object()
def do_thing(arg1, default=_nolen):
if default is _nolen:
default = len(arg1)
...