我正在尝试使用以下代码在 Python 中动态地将方法添加到类中:
class SomeClass():
def __init__(self, name, age):
self.name = name
self.age = age
def __len__(self):
return len(self.name)
p = SomeClass("Bob", 22)
def f(v):
print len(v)
SomeClass.length = f
print p.length()
自 len()
功能取决于 __len__
参数中使用的对象的方法,我期望输出为:
3
但是,我得到的输出为:
3
None
为什么会有None
在输出中?
最佳答案
您没有从 f
返回任何内容。因此默认情况下将返回 None
。当您执行print p.length()
时,p.length
实际上会打印长度并返回None
,这就是打印的内容。
相反,只需返回 f
的长度即可。
def f(v):
return len(v)
关于python - 为什么我的类的 p.length() 返回 None ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38262035/