これは、Learning Python から抽出および適応されたコードですlambda
。5 行目での使用は何ですか。引数が 0 であることを期待return lambda *args: '[Getattr str]'
しているようですが、ここでは不要ですか?print(X.__str__())
*args
class GetAttr:
def __getattr__(self, attr):
print('getattr: ' + attr)
if attr == '__str__':
return lambda *args: '[Getattr str]'
else:
return lambda *args: None
X = GetAttr()
print(X.__call__('why', 'any', 'number', 'of', 'arguments', 'here'))
print(X.__str__()) # but not here?