2016-06-08 99 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 __()',假設方法存在並返回一個有效的整數長度。 –

相關問題