---
# System prepended metadata

title: 'Python OOP 3種類型方法 (Instance,Class,Static)'
tags: [語法相關]

---

Python OOP 3種類型方法 (Instance,Class,Static)
===

* **實體方法\(Instance Method\)**
  * 定義方法沒有加任何裝飾詞 (Decorator)
  * 一定要包含 `self` 參數，`self` 表示**類別物件**本身
  * 透過`self` 參數可以自由的存取物件屬性及其他方法，藉此來改變物件的狀態


* **類別方法\(Class Method\)**
  * 定義方法之前會有 **`@classmethod`** 裝飾詞
  * 一定要包含 `cls` 參數，表示**類別**自己本身
  * 沒有 `self` 參數，所以無法改變物件的狀態
  * 類別方法只能改變類別的狀態


* **靜態方法\(Static Method\)**
  * 定義方法之前會有 **`@staticmethod`** 裝飾詞
  * 沒有 `self` 及 `cls` 參數，所以無法改變物件及類別的狀態
  * 可以接受任意的參數，是一個獨立的方法，單純執行傳入參數或功能上運算的情況

## Ref.

[https://www.learncodewithmike.com/2020/01/python-method.html](https://www.learncodewithmike.com/2020/01/python-method.html)



###### tags: `語法相關`