2013-12-12 92 views
0

我在蟒蛇新我試圖下面的腳本蟒蛇返回類型,而不是

""" 
>>> x + y 
42 
>>> type(message) 
<class 'str'> 
>>> len(message) 
13 
""" 

if __name__ == '__main__': 
    x = 22 
    y = 20 
    message = str("abcdefghijklm") 
    import doctest 
    doctest.testmod() 

我得到以下錯誤Python版本是2.6

File "test1.py", line 6, in __main__ 
Failed example: 
    type(message) 
Expected: 
    < class 'str'> 
Got: 
    < type 'str'> 

能否請你說明爲什麼它是鍵入即使我正在使用str類來創建消息對象?

回答

1

「Type」(大部分)是Python中「class」的同義詞。一個使用class關鍵字來創建Python代碼中的新類型。

+0

這是否意味着我正在使用的測試用例「」不正確?或者有一種方法可以創建類str的對象?我在這裏假設我不需要創建一個自定義的str類。 – user258367

+1

@ user258367:對於舊版本的Python可能是正確的,但我還沒有發現任何跡象。即使自定義類在他們的repr中使用「類型」。 –

2

請問Python,str是什麼。

In [1]: type(str) 
Out[1]: type 
3

因爲class關鍵字是有創建一個新的類型。看看下面的例子:

>>> type(type) 
<class 'type'> 
>>> type(object) 
<class 'type'> 

在Python中一切都是一個object這一切從object繼承。正如你所看到的type對象是type。 :)