Вызов скрипта python из командной строки дает синтаксическую ошибку, когда класс ничего не наследует, почему?

Этот вопрос не имеет для меня никакого реального значения. Я просто обнаружил это по совпадению, и мне любопытно, что за ним стоит механика. Я получил сценарий примера:

#!/usr/bin/env python """ just an example """ class exampleClass(): 'this is just an example' if __name__ == '__main__': print(__doc__) 

Запустив это в eclipse, напечатайте «просто пример». Однако, когда я пытаюсь запустить это в терминале, я получаю следующую ошибку:

 File "./temp.py", line 6 class exampleClass(): ^ SyntaxError: invalid syntax 

Теперь, когда я изменяю класс в примере скрипта, чтобы наследовать от dict

 class exampleClass(dict): 

и запустить его из командной строки, он также печатает «просто пример». Итак, почему классы должны наследовать что-то для работы из командной строки, но не от затмения?

Согласно грамматике Python 2.7.2 , следующий синтаксис неверен:

 class exampleClass(): 'this is just an example' 

Это должно быть либо

 class exampleClass: 'this is just an example' 

или

 class exampleClass(object): # or `dict' etc 'this is just an example' 

По всей вероятности, вы используете две разные версии интерпретатора Python, и по какой-либо причине один из интерпретаторов допускает недопустимый синтаксис, а другой – нет.

Вы не должны использовать скобки

 class exampleClass: pass 

если вы не хотите наследовать от другого класса, например:

 class exampleClass(object): pass