簡體   English   中英

Python class 定義語法

[英]Python class definition syntax

有區別嗎

class A:
    ...

class A():
    ...

我剛剛意識到我的幾個課程被定義為前者並且它們工作得很好。 空括號有什么區別嗎?

雖然在類定義中使用空括號在語法上可能沒有錯誤,但類定義后的括號用於表示繼承,例如:

class A(baseClass):
    ...

在 Python 中,沒有任何基類的類聲明的首選語法很簡單:

class A:
    ...

不要使用括號,除非您要繼承其他類。

關於這個問題文檔應該讓你更好地理解如何在 Python 中聲明和使用類。

后者是舊版本 Python 的語法錯誤。 不過,在 Python 2.x 中,您應該盡可能從object派生,因為一些有用的功能僅適用於新樣式類(從object派生在 Python 3.x 中是可選的,因為新樣式類是那里的默認值)。

類定義與函數/方法定義有點不同。

類定義中的括號用於定義您從哪個類繼承。 你不要在它前面寫 def ,當你從默認的 'object' 繼承時,你不需要括號來定義。

所以你可以寫:

class C():

或者:

class C:

函數/方法定義總是帶括號,即使你沒有定義參數。 如果你不使用它們,你會得到一個 SyntaxError。

后面在代碼中定義了一個類/函數/方法之后,只要寫名字就會指向這個類/函數/方法。

如果您想調用或訪問其中任何一個,您需要 ()、[]、. 管他呢。

暫無
暫無

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

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