日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 类方法 函数_Python OOP类中的几种函数或方法总结

發布時間:2024/7/23 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 类方法 函数_Python OOP类中的几种函数或方法总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

實例方法

使用實例調用時,默認傳遞實例本身到實例方法的第一個參數self

使用類調用時,必須傳遞一個實例對象到實例方法的第一個參數

靜態方法

使用實例調用和類調用效果相同;

類方法

裝飾器版:

使用實例調用和類調用效果相同;

classmethod(function)版:

在類中,盡量不要使用classmethod(function)實現類方法,會將其當做實例方法使用;

使用實例調用時,會默認傳遞實例本身到函數的第一個參數,如果函數的參數個數為0,則報錯;

如果必須這樣做,就使用類調用.

普通函數

在類中,盡量不要定義普通函數,會將其當做實例方法使用;

使用實例調用時,會默認傳遞實例本身到函數的第一個參數,如果函數的參數個數為0,則報錯;

如果必須這樣做,就使用類調用.

總而言之,除了裝飾器版的類方法和靜態方法外,其它方法與函數均可看做是實例方法.

代碼與運行結果

class A(object):

def instant_method(self,*args):

print('實例方法',*args)

@classmethod

def class_method_01(clz,*args):

"""第一個參數為class,調用時自動傳遞"""

print('類方法(裝飾器版)',*args)

def class_method_02(*args):

print('類方法(普通函數通過內置函數classmethond(function)轉換版)',*args)

classmethod(class_method_02)

@staticmethod

def static_method(*args):

print('靜態方法',*args)

def normal_function(*args):

print('普通函數',*args)

a=A()

# 調用實例方法

a.instant_method('通過實例調用')

A.instant_method(a,'通過類調用')

# 調用裝飾器版類方法

a.class_method_01('通過實例調用')

A.class_method_01('通過類調用')

# 調用classmethod(function)版類方法

# 通過實例調用時,會默認傳遞實例本身到方法的第一個參數

a.class_method_02('通過實例調用')

A.class_method_02('通過類調用')

# 調用靜態方法

a.static_method('通過實例調用')

A.static_method('通過類調用')

# 調用普通函數

# 通過實例調用時,會默認傳遞實例本身到方法的第一個參數

a.normal_function('通過實例調用')

A.normal_function('通過類調用')

輸出

實例方法 通過實例調用

實例方法 通過類調用

類方法(裝飾器版) 通過實例調用

類方法(裝飾器版) 通過類調用

類方法(普通函數通過內置函數classmethond(function)轉換版) 通過實例調用

類方法(普通函數通過內置函數classmethond(function)轉換版) 通過類調用

靜態方法 通過實例調用

靜態方法 通過類調用

普通函數 通過實例調用

普通函數 通過類調用

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對找一找教程網的支持。如果你想了解更多相關內容請查看下面相關鏈接

總結

以上是生活随笔為你收集整理的python 类方法 函数_Python OOP类中的几种函数或方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。