2013-12-12 3 views
0

Я новичок в 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() 

Я получаю ниже ошибки питона версии 2,6

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

Можете ли вы предположить, почему типа, хотя я использую класс str для создания объекта сообщения?

ответ

1

«Тип» (в основном) синоним «класс» в Python. Для создания новых типов в коде Python используется ключевое слово class.

+0

это означает, что тестовая ячейка, которую я использую «», неверна? или есть способ, которым я могу создать объект класса str? Я предполагаю, что мне не нужно создавать собственный класс str. – user258367

+1

@ user258367: Возможно, он подходит для более старой версии Python, но пока я не нашел никаких признаков этого. Даже пользовательские классы используют «тип» в своем представлении. –

2

Просто спросите Python, что str есть.

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

Потому что ключевое слово class должно сделать новый тип. Взгляните на следующее:

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

В питона все это object, и это все, что наследует от object. И, как вы можете видеть, type для объекта - type. :)

Смежные вопросы