【发布时间】:2026-02-07 15:45:02
【问题描述】:
我的问题是关于另一个问题的两个答案:Using class/static methods as default parameter values within methods of the same class。
我试图了解这两个答案的作用是否真的有区别,如果有,各自的优缺点是什么。
问题:如何使用类方法作为同一个类中方法的默认参数。
答案1:使用函数而不是类方法
class X:
def default_func(x):
return True
def test(self, func = default_func):
return func(self)
答案2:使用类方法,但将其转换为函数
def unstaticmethod(static):
return static.__get__(None, object)
class X:
@staticmethod
def default_func(x):
return True
def test(self, func = unstaticmethod(default_func)):
return func(self)
这最初是用 Python 2 编写的,但我的总结(希望)是 Python 3。
【问题讨论】:
标签: python static-methods argument-passing