Определение класса в Python

class Car: pass class Car(): pass 

В чем разница между этими двумя? а также,

 a = Car a = Car() 

также, в чем разница между этими двумя выше?

С наилучшими пожеланиями

первое утверждение, a = Car просто делает псевдоним классу Car . Поэтому после того, как вы это сделаете, вы можете сделать b = a() и он будет таким же, как b = Car()

После того, как вы присоедините () в конце, он делает python фактически инициализацией класса (либо __call__ либо просто инициализируется, но вам не нужно беспокоиться об этом), и становится тем, что возвращается Car() , в этом случае , это экземпляр класса.

Что касается разницы между class Car: и class Car(): Второй – недопустимый синтаксис (изменить: до 2.5, я бы все же сказал, что это своего рода плохой стиль, потому что нет причин, чтобы он был там, если вы не наследуете). Причина, по которой у вас есть скобки, – это когда вам нужно наследовать другой класс.

В первом фрагменте последний является недопустимым синтаксисом в более старых версиях Python.

Во втором фрагменте первая привязывает ссылку к классу, а вторая связывает ссылку на новый экземпляр класса.