python中實例方法,類方法和靜態方法的區別。


實例方法,必須要創建實例才能調用,里面有self關鍵字,有初始化函數必須對初始化函數進行傳參。

類方法,可以直接類名.方法名直接調用,也可以創建實例調用。里面有cls關鍵字,調用時,直接類名.方法名,可以繞過實例方法的初始化函數,類方法不能訪問實例屬性。

靜態方法,可以直接類名.方法名直接調用,也可以創建實例調用。沒有關鍵字,就像調用函數一樣方便,調用時,直接類名.方法名,可以繞過實例方法的初始化函數,靜態方法不能訪問實例屬性。

下圖3種方法:

看下圖類方法和靜態方法,沒有創建實例去調用:

由上圖調用結果可以知道,類方法和靜態方法,都是通過類名.方法名的方式調用,不需要創建對象,也不需要對初始化函數進行傳參。而實例方法,必須要創建實例對象才能調用,如果方法里面有初始化函數也必須對初始化函數進行傳參。

看下圖類方法和靜態方法,創建實例后去調用:

代碼如下:

import requests

class HttpRequest():

    def __init__(self,url,data):
        self.url = url
        self.data = data

    # todo 實例方法
    def send_post(self,url,data):   # todo 實例方法,只能通過實例來調用
        res = requests.post(url,data)
        print(res.status_code)

    @classmethod
    def add(cls,x,y):
        print('我是類方法')
        return x+y

    @staticmethod
    def print_msg():
        print('我是靜態方法')


if __name__ == '__main__':
    # todo 類方法和靜態方法可以直接類名.方法名直接調用,可以繞過實例方法的初始化函數
    print(HttpRequest.add(7,8))
    HttpRequest.print_msg()

    url = 'https://www.ketangpai.com/UserApi/login'
    data = {
        "email": "1489088761@qq.com",
        "password": "A1234568","remember": 0
    }
    HttpRequest(url,data).send_post(url,data)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM