chr*_*iss 133 python nameerror
为何如此结构
class A:
def __init__(self, a):
self.a = a
def p(self, b=self.a):
print b
Run Code Online (Sandbox Code Playgroud)
给出错误NameError: name 'self' is not defined?
int*_*tgr 142
默认参数值在函数define-time处计算,但是self仅在函数调用时可用的参数.因此,参数列表中的参数不能相互引用.
这是默认参数的常见模式,None并在代码中为其添加测试:
def p(self, b=None):
if b is None:
b = self.a
print b
Run Code Online (Sandbox Code Playgroud)
小智 16
对于您还希望选择将"b"设置为"无"的情况:
def p(self, **kwargs):
b = kwargs.get('b', self.a)
print b
Run Code Online (Sandbox Code Playgroud)
如果您是通过Google到达这里的,请确保检查是否已将self作为类函数的第一个参数。特别是如果您尝试在函数内引用该对象的值。
def foo():
print(self.bar)
Run Code Online (Sandbox Code Playgroud)
> NameError:名称“ self”未定义
def foo(self):
print(self.bar)
Run Code Online (Sandbox Code Playgroud)
>“恭喜您摆脱了NameError!”
| 归档时间: |
|
| 查看次数: |
119116 次 |
| 最近记录: |