只是好奇,
在构建类时,使用len()
或def __len__()
是否有任何区别(优点和缺点)?哪种是最好的Python风格?
class foo(object):
def __init__(self,obs=[])
self.data = obs
self.max = max(obs)
self.min = min(obs)
self.len = len(obs)
或者
class foo(object):
def __init__(self,obs=[])
self.data = obs
self.max = max(obs)
self.min = min(obs)
def __len__(self):
return len(self.data)
[]
,除非您知道自己在做什么。请参阅"Python中的最小惊奇":可变默认参数。 - Martijn Pietersself.len = len(obs)
将数据成员self.len
赋值为 obs 的初始长度。self.len
不是一个函数。如果初始化后 obs 发生变化,self.len
不会反映这种变化。 - smci