如何从第二个参数引用函数的第一个参数?(python 2.7)

1 投票
1 回答
639 浏览
提问于 2025-04-18 14:11

假设我有一个通用的函数,像这样:

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)
   ...

撰写回答