为什么这样的结构
class A:
def __init__(self, a):
self.a = a
def p(self, b=self.a):
print b
给出错误 NameError: name 'self' is not defined
?
原文由 chriss 发布,翻译遵循 CC BY-SA 4.0 许可协议
为什么这样的结构
class A:
def __init__(self, a):
self.a = a
def p(self, b=self.a):
print b
给出错误 NameError: name 'self' is not defined
?
原文由 chriss 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答853 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
默认参数值在函数定义时计算,但
self
是仅在函数调用时可用的参数。因此参数列表中的参数不能相互引用。将参数默认为
None
并在代码中为其添加测试是一种常见模式:2022 年更新: Python 开发人员现在正在 考虑未来 Python 版本的后期绑定参数默认值。