classmethod與staticmethod內置裝飾器
1、classmethod
是一個裝飾器,給在類內部定義方法裝飾,將類內部的方法變為 “類的系結方法”
class DB:
__data = "tom is very cute"
def __init__(self, user, pwd, role):
self.user = user
self.pwd = pwd
self.role = role
@classmethod
def check_db(cls, user, pwd, role): # cls指的是類
# 在類方法內部呼叫類產生一個實體 ---> 物件
obj = cls(user, pwd, role)
# 查看資料前必須通過校驗
if obj.user == "root" and obj.pwd == "123" and obj.role == "admin":
return cls.__data
print(DB.check_db("root", "123", "admin"))
執行結果:
tom is very cute
2、staticmethod
staticmethod:靜態方法
是一個裝飾器,給在類內部定義方法裝飾,將類內部的方法變為 “非系結方法”
class Foo:
@staticmethod
def func(self):
print(self)
obj = Foo()
# 物件呼叫非系結方法
obj.func(123)
# 類呼叫非系結方法
Foo.func(1234)
執行結果:
123
1234
3、系結方法總結
① 物件的系結方法:
由物件來呼叫,由誰來呼叫,會將誰(物件)當做第一個引數傳入
② 類的系結方法:
由類來呼叫,由誰來呼叫,會將誰(類)當做第一個引數傳入
③ 非系結方法:
可以由物件或者類來呼叫,誰來呼叫都是一個普通方法(普通函式),方法需要傳入幾個引數,呼叫時候就得傳入幾個引數
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/194405.html
標籤:Python
