面向物件(四)-例項,類,靜態方法
阿新 • • 發佈:2020-12-29
例項方法,類方法,靜態方法
# 格式
class A:
def 例項方法(self):
"""例項方法"""
pass
@classmethod
def 類方法(cls):
"""類方法"""
pass
@staticmethod
def 靜態方法():
pass
程式碼演示
class Student: gender = "男" # 類屬性:公共資源 def __init__(self, name, age): self.name = name self.age = age # self.gender = gender def write_code(self): """寫程式碼""" print(f"{self.name}在教室中寫程式碼") @staticmethod def do_homework(): """寫家庭作業""" print("認真完成家庭作業") @classmethod def modify_gender(cls): """修改類屬性 cls:當前的類名 """ # Student.gender = "女" cls.gender = "女" # 建議方法 print("修改成功") @staticmethod def info(): """展示學生資訊""" print("教室位置:三班") print("班級人數:8人") print("學生性別:都是男生") zs = Student("張三",20) ls = Student("李四",25) # 呼叫例項方法:可以 # zs.write_code() # 呼叫靜態方法:可以 # zs.do_homework() # #呼叫類方法:可以,不推薦 # zs.modify_gender() # 修改了類屬性為女 # print(zs.gender) # 女 # 類物件 # 直接呼叫例項方法:報錯 # Student.write_code() # 報錯 # Student.write_code(zs) # 正確 # Student.write_code(Student) # 錯誤 # 呼叫類方法:可以,推薦 Student.modify_gender() # 呼叫靜態方法:可以 Student.do_homework()
2 是否能被物件呼叫
- 例項物件均可以訪問
- 類物件可以訪問類方法和靜態方法,不能訪問例項方法
3 是否能訪問屬性
- 例項方法:可以訪問類屬性和例項屬性
- 類方法:可以訪問類屬性,不能訪問例項屬性
- 靜態方法:均不能訪問
4 應用場景
- 例項方法: 用於描述具體例項的相關操作。
- 類方法:用於對類屬性的相關操作。
- 靜態方法:用於定義與物件無關的獨立功能
5 方法總結