Chr*_*ris 0 python argument-passing
我想编写一个带有参数的方法,默认为成员变量,如下所示:
def method(self, arg1=0, arg2=self.member):
显然这是不允许的.我应该以不同的方式编写它,或者使用值arg2来表示何时使用成员变量?
是的,使用哨兵 - 例如:
class Foo(object):
    _sentinel = object()
    def method(self, arg1=0, arg2=_sentinel):
        if arg2 is self._sentinel: arg2 = self.member
        ...
    ...
注意,您需要barename _sentinel的def,但self._sentinel在方法的主体(因为这是作用域的工作方式在课堂机构VS方法体;-).
| 归档时间: | 
 | 
| 查看次数: | 105 次 | 
| 最近记录: |