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

歡迎訪問 生活随笔!

生活随笔

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

python

python内置装饰器property_python之内置装饰器(property/staticmethod/classmethod)

發布時間:2023/12/3 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python内置装饰器property_python之内置装饰器(property/staticmethod/classmethod) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

python內置了property、staticmethod、classmethod三個裝飾器,有時候我們也會用到,這里簡單說明下

1、property

作用:顧名思義把函數裝飾成屬性

一般我們調用類方法成員,都是如下寫法:

class propertyTest():

def __init__(self,x,y):

self.x = x

self.y = y

def square(self):

return self.x * self.y

pt = propertyTest(3,5)

print(pt.square())

這里一看square就是類的一個方法,但如果把他寫成如下形式,那么就不確定調用的一定是類方法:

class propertyTest():

def __init__(self,x,y):

self.x = x

self.y = y

@property

def square(self):

return self.x * self.y

pt = propertyTest(3,5)

print(pt.square)

這里調用方法類似調用了一個成員變量一樣,如果寫成print(pt.square())編譯器會報錯

這就是property的用法, 把一個方法變成一個變量來調用

2、staticmethod

作用:不需要實例化,直接可以調用類中的方法,如下所示

class A():

def __init__(self):

pass

@staticmethod

def plus(x,y):

print(x*y)

c = A()

c.plus(2,3)

A.plus(4,5)

我們可以實例化類A,然后調用方法plus,也可以直接類.方法調用

3、classmethod

作用:和staticmethod類似,不同的是把調用的類作為第一個參數傳入,如下:

class A():

def __init__(self):

pass

@classmethod

def plus(cls,x,y):

print(cls)

print(x*y)

A.plus(4,5)

c = A()

c.plus(5,6)

這里print(cls)打印的是類A,其他用法同staticmethod

總結

以上是生活随笔為你收集整理的python内置装饰器property_python之内置装饰器(property/staticmethod/classmethod)的全部內容,希望文章能夠幫你解決所遇到的問題。

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