python返回类型而不是类

时间:2013-12-12 08:52:30

标签: python

我是python的新手,我正在尝试下面的脚本

"""
>>> 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类创建消息对象,你能否建议为什么它是类型?

3 个答案:

答案 0 :(得分:3)

因为class关键字用于创建新类型。看看以下内容:

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

在python中,一切都是object,这一切都从object继承。正如您所看到的,对象的typetype。 :)

答案 1 :(得分:2)

问问Python,str是什么。

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

答案 2 :(得分:1)

“Type”(主要)是Python中“class”的同义词。一个使用class关键字,以便在Python代码中创建新类型。