【问题标题】:get mutable default arguments of func获取 func 的可变默认参数
【发布时间】:2014-05-31 16:43:41
【问题描述】:

如何在 Python 3 中获取可变的默认参数元组?

def foo(x=[]):
    pass

尝试失败:

foo.func_defaults

错误:

AttributeError: 'function' object has no attribute 'func_defaults'

【问题讨论】:

    标签: python python-3.x arguments signature


    【解决方案1】:

    你应该像这样使用__defaults__

    def foo(x=[]):
        x.append(1)
    
    foo()
    foo()
    print(foo.__defaults__)
    # ([1, 1],)
    

    引自data model

    __defaults__

    一个元组包含那些具有默认值的参数的默认参数值,如果没有参数具有默认值,则为None

    这意味着,当你有一个没有默认参数的函数时,__defaults__ 将是None

    def foo():
        pass
    
    print(foo.__defaults__)
    # None
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      • 2021-10-11
      • 2021-08-18
      • 2013-04-17
      • 1970-01-01
      相关资源
      最近更新 更多