-1
下面的腳本的輸出:Python列表不具有len屬性嗎?
a = ['abc', 'def', 'ghi', 'jkl']
print len(a)
print hasattr(a,"len")
是
4
False
我期待False
是True
,特別是因爲len()
作品上a
。我是否錯過了某個屬性實際上是什麼?
下面的腳本的輸出:Python列表不具有len屬性嗎?
a = ['abc', 'def', 'ghi', 'jkl']
print len(a)
print hasattr(a,"len")
是
4
False
我期待False
是True
,特別是因爲len()
作品上a
。我是否錯過了某個屬性實際上是什麼?
是的,你錯過了一些東西。 len(x)
返回x.__len__()
,而不是x.len
。
嘗試運行dir(x)
以查看對象上可用的屬性。
不完全,'len(x)'返回'x .__ len __()',假設方法存在並返回一個有效的整數長度。 –
我想你錯過了什麼,是的。你爲什麼認爲調用'len(a)'會和'''有一個屬性叫'len'有關? (有一種稱爲'__len__'的魔術方法,但這不在你的問題的範圍內。) – BrenBarn