python - 当类没有继承任何内容时,从命令行调用 python 脚本会出现语法错误,这是为什么?

标签 python class inheritance command-line

这个问题(对我来说)没有任何实际意义。我只是偶然发现了这一点,我很好奇其背后的机制。我得到了以下示例脚本:

#!/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):

并从命令行运行它,它还会打印“只是一个示例”。 那么为什么类必须继承某些东西才能从命令行工作,而不是从 Eclipse 继承呢?

最佳答案

根据Python 2.7.2 grammar ,以下语法不正确:

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 解释器,并且由于某种原因,其中一个解释器允许无效语法,而另一个则不允许。

关于python - 当类没有继承任何内容时,从命令行调用 python 脚本会出现语法错误,这是为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9363830/

相关文章:

iOS 如何在不子类化所有内容的情况下为类引入具有 UDID 的能力?

c++ - 使用不支持的类型继承 C++ 中的模板类

python - 如何防止 ansible 模板被接收到的内容混淆?

python - Django 确保空白字段

Objective-c 枚举类

java - 输出是什么?

python - numpy.as_strided 的结果是否取决于输入数据类型?

python - 从字符串中删除重复字符

python - 在 __init__ 中声明类属性与使用 @property 声明类属性

ruby 克隆一个对象