簡體   English   中英

當類不繼承任何東西時,從命令行調用python腳本會產生語法錯誤,這是為什么?

[英]Calling python script from commandline gives syntax error when class doesn't inherit anything, why is that?

這個問題(對我而言)沒有真正的含義。 我只是偶然發現了這一點,並對它背后的機制感到好奇。 我得到了以下示例腳本:

#!/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語法 ,以下語法不正確:

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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM