類用來描述具有相同的屬性和方法的對象的集合。
對於在類中定義的函數,稱為方法。
類變量不直接叫做類變量,稱為屬性。
1、類的定義
例子:
class User(): pass
說明:
(1)定義了一個類名為User的類
(2)類名一般約定用大寫字母開頭,函數則用小寫字母開頭,以做區分
(3)用pass表示為空類,暫時還沒准備好類的內容
2、類的方法
例子:
class User(): def say(self) -> None: print('hello')
調用:
a = User() a.say() print(hex(id(a))) print(a)
運行結果:
hello 0x36dfd68 <__main__.User object at 0x00000000036DFD68>
說明:
(1)上面定義了方法say,方法可以有0到多個參數,但第一個參數是必須有的,第一個參數有約定俗成的名字叫self在對象上調用一個方法時,不需要手動為self提供一個值,原因是解釋器會自動把調用對象實例做為第一個參數,賦值給各個方法的self參數。
例如上面a.say()不需要為self提供值,解釋器會自動轉換為User.say(a)
(2)self 代表的是類的實例,上面hex(id(a))查詢實例的內存地址,可以看出和打印對象名是同個地址。
對象可以用__repr__方法覆蓋,例子:
class User(): def __repr__(self) -> str: return '覆蓋默認行為'
調用:
a = User() print(a)
運行結果:
覆蓋默認行為
3、類的屬性
例子:
class User(): def __init__(self, name: str) -> None: self.name = name def say(self) -> str: print('我的名字是:', self.name)
調用:
a = User('張三') print(a.name) a.say()
運行結果:
張三
我的名字是: 張三
說明:
(1)用構造方法__init__初始化屬性,在方法中用self.屬性名訪問。