【发布时间】:2015-01-20 13:51:47
【问题描述】:
方法默认参数显然可以被覆盖:
>>> class B:
... def meth(self, r=True): print r
>>> class D(B):
... def meth(self, r=False): print r
... D().meth()
False
>>> B().meth()
True
这怎么可能?它被认为是糟糕的风格吗?
【问题讨论】:
-
附录 (2014.11.23):用例是添加用于修改遗留代码中的方法行为的默认参数 - 不打算由调用者设置 - 应将其命名为
_r
标签: python python-2.7 inheritance methods default-arguments