2016-06-08 100 views
-1

下面的脚本的输出:Python列表不具有len属性吗?

a = ['abc', 'def', 'ghi', 'jkl'] 

print len(a) 
print hasattr(a,"len") 

4 
False 

我期待FalseTrue,特别是因为len()作品上a。我是否错过了某个属性实际上是什么?

+3

我想你错过了什么,是的。你为什么认为调用'len(a)'会和'''有一个属性叫'len'有关? (有一种称为'__len__'的魔术方法,但这不在你的问题的范围内。) – BrenBarn

回答

5

是的,你错过了一些东西。 len(x)返回x.__len__(),而不是x.len

尝试运行dir(x)以查看对象上可用的属性。

+2

不完全,'len(x)'返回'x .__ len __()',假设方法存在并返回一个有效的整数长度。 –

相关问题