裝飾器裝飾函式的一般形式如下:
# 定義修飾器
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...