15 Python中的裝飾器

2021-08-15 16:59:58 字數 1907 閱讀 8452

裝飾器裝飾函式的一般形式如下:

# 定義修飾器

defdecorater

(fun):

defnew_fun

(*args, **kwargs):

《語句1>

fun(*args, **kwargs)

《語句2>

return new_fun

#呼叫修飾器

@decorater

deffunction

():pass

裝飾函式示例:

#定義裝飾器

defmydecorator

(fun):

def(*args, **kwargs):

print('start...')

fun(*args, **kwargs)

print('end...')

@mydecorator

defusedecorator1

(x):

result = x * 2

print(result)

@mydecorator

defusedecorator2

(name):

print('hello', name)

if __name__ == '__main__':

usedecorator1(3)

usedecorator1('python')

執行結果:

start…

6 end…

start…

pythonpython

end…

裝飾器不僅可以裝飾函式,也可以裝飾類。定義裝飾類的裝飾器採用的方法是:定義內嵌類的函式,並返回新類。

裝飾類示例:

# 定義修飾類

defmyclassdecorator

(objclass):

class

myclassdecorator:

def__init__

(self, z = 0):

self.__z = z

defpostion

(self):

print('z axis:', self.__z)

defsetpostion

(self, x, y, z):

self.__z = z

return myclassdecorator

@myclassdecorator

class

cooridination:

def__init__

(self, x = 2, y = 9):

self.__x = x

self.__y = y

defpostion

(self):

print('x axis:', self.__x)

print('y axis:', self.__y)

defsetpostion

(self, x, y):

self.__x = x

self.__y = y

if __name__ == '__main__':

coor = cooridination()

coor.postion()

print()

coor.setpostion(10, 20, 30)

coor.postion()

執行結果:

x axis: 2

y axis: 9

z axis: 0

x axis: 10

y axis: 20

z axis: 30

面試題程式設計題15 python 裝飾器簡單例項

from time import sleep import time python裝飾器庫 functools from functools import wraps 裝飾普通函式 defdecorator fun wraps fun def start time time.time fun end...

1 5 Python內建函式

如果你熟悉 shell 程式設計,了解什麼是 shell 內建命令,那麼你也很容易理解什麼是 python 內建函式,它們的概念是類似的。將使用頻繁的 段封裝起來,並給它起乙個名字,以後使用的時候只要知道名字就可以,這就是函式。函式就是一段封裝好的 可以重複使用的 它使得我們的程式更加模組化,不需要...

15 Python 物件導向

物件導向 oop 是一種對現實世界理解和抽象的方法,物件的含義是指在現實生活中能夠看得見摸得著的具體事物,一句比較經典的描述是一切皆物件,python 是一門物件導向的語言,物件導向程式設計簡單來說就是一種封裝 的方式。物件導向相關概念 1.類 python 中類的定義使用 class 關鍵字 cl...