2012-01-03 2 views
3

В объявлении класса python я могу объявить класс несколькими способами. В чем разница между следующими образцами?Разница в объявлении класса Python

class MyClass: 
def __init__(self) 
    pass 


class MyClass(object): 
    def __init__(self) 
    pass 
+0

Важным вопросом, который, очевидно, можно было бы ответить «самообслуживанием», прочитав документы. – wim

ответ

2

Второй способ создает класс «нового стиля». Документация, по общему признанию, немного отсутствует, о чем упоминалось в нескольких местах на веб-сайте python Python Guide 3.3 и here. Там также есть essay, описывающий их дизайн создателем Python (Guido van Rossum), но это не строго документация.

7

Вторая декларация создает new-style class. Класс нового стиля получается из встроенного типа, в данном случае - object. Это было введено в python 2.2, чтобы объединить классы и типы. Для обеспечения обратной совместимости старого стиля классов по-прежнему по умолчанию

Дополнительная Читать: http://docs.python.org/release/2.2.3/whatsnew/sect-rellinks.html

+4

FTR, в Python 3 нет разницы между этими двумя синтаксисами. –

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