python常用裝飾器

2021-10-11 16:32:25 字數 1629 閱讀 3590

定義:在**執行期間動態增加功能的方式,稱之為「裝飾器」(decorator)。本質上,decorator就是乙個返回函式的高階函式。

import functools,time

defexecute_time

(func)

:# 定義裝飾器

@functools.wraps(func)

# 把名字改回來

def(

*args,

**kw)

: start_time = time.time(

) res = func(

*args,

**kw)

end_time = time.time(

)return res

@execute_time

deff()

:print

("property")f(

)# 現在執行f(),相當於執行execute_time(f)

每次執行乙個例項方法時,程式會自動將例項作為第乙個引數傳入到方法,也就是每個方法預設的第乙個引數self

使程式不把例項作為第乙個引數傳入。

使程式把類作為第乙個引數傳入。

class

girlfriend

:def

__init__

(self, name)

: self.name= name

defabout_me

(self)

:print

(self.name)

@staticmethod

defbio()

:print

('全心全意為主人服務!'

) @classmethod

defcls_name

(cls)

:print

(cls.__name__)

a typical use is to define a managed attribute x.

舉例來說,你有乙個屬性x,但是你不希望外界可以直接對他進行操作。於是你定義乙個同名的方法x,用property把他變成property attribute,也就是仍然像訪問屬性一樣訪問它,但是有了一些限制。原來的屬性x變為_x

classc:

def__init__

(self)

: self._x =

none

@property

defx

(self)

:"""i'm the 'x' property."""

return self._x

@x.setter

defx(self, value)

: self._x = value

@x.deleter

defx(self)

:del self._x

python 常用裝飾器

對於類的方法,python內建的 property裝飾器就是負責把乙個方法變成屬性呼叫的 class student object property defscore self return self.score score.setter defscore self,value ifnot isin...

python常用裝飾器函式

1 property 將方法偽裝成屬性 2 setter 修改屬性 只有當被property裝飾的方法,又實現了乙個同名方法,且被setter裝飾器 裝飾了,在被裝飾的方法賦值的時候,就觸發被setter裝飾器裝飾的方法 3 deleter 刪除屬性 class student def init s...

python裝飾器 Python 裝飾器

簡言之,python裝飾器就是用於拓展原來函式功能的一種函式,這個函式的特殊之處在於它的返回值也是乙個函式,使用python裝飾器的好處就是在不用更改原函式的 前提下給函式增加新的功能。一般而言,我們要想拓展原來函式 最直接的辦法就是侵入 裡面修改,例如 這是我們最原始的的乙個函式,然後我們試圖記錄...