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

歡迎訪問 生活随笔!

生活随笔

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

python

python 装饰器 java,python之各种装饰器的使用

發布時間:2023/12/10 python 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 装饰器 java,python之各种装饰器的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

"""

裝飾器,帶參數的裝飾器,類的裝飾器

判斷是否為可迭代的

from collections import Iterable

print(isinstance([1,2,3],Iterable))

"""

# 1、簡單的裝飾器

def debug(func):

def wrap():

print(f'debug:func name is {func.__name__}')

return func()

return wrap

@debug

def calculate():

return 1+2

print(calculate())

# 2、裝飾器帶參數,先接受的是參數,后接受的是函數

def debug(parameter):

def wrapper(func):

def wrap():

print(f'debug:func name is {func.__name__}')

print(f'debug:func parameter is {parameter}')

return func()

return wrap

return wrapper

@debug('testdata')

def calculate():

return 1+2

print(calculate())

# 3、裝飾帶參數的函數,需要將參數給定義的wrap

def debug(func):

def wrap(a, b):

print(f'debug:func name is {func.__name__}')

return func(a, b)

return wrap

@debug

def calculate(a,b):

return a+b

print(calculate(1,2))

"""

函數修飾函數

4、裝飾器帶參數,同時裝飾的函數也帶參數

"""

def debug(parameter):

def wrapper(func):

def wrap(c, d):

print(f'debug:func name is {func.__name__}')

print(f'debug:func parameter is {parameter}')

return func(c, d)

return wrap

return wrapper

@debug('data')

def calculate(c, d):

return c*d

print(calculate(5,7))

"""

函數修飾類

5、帶參數的函數裝飾器 裝飾 帶參數的類

"""

def debug(parameter):

def inner(func):

def wrap(a,b):

print("class name:", func.__name__)

print("genrator parameter is:", parameter)

return func(a,b)

return wrap

return inner

@debug('get')

class Calculate(object):

def __init__(self,a,b):

self.a = a

self.b = b

def cal(self):

num = self.a + self.b

return num

def sal(self):

cnum = self.a * self.b

return cnum

c = Calculate(3,4)

print(c.cal())

"""

類裝飾函數

6,帶參數的類裝飾器 修飾 帶參數的函數

ini里面接受的是裝飾器的參數,如果無參數則接受的是函數名

"""

class Debug(object):

def __init__(self,parameter):

self.parameter = parameter

def __call__(self, func):

def wrap(a,b):

print('function name is', func.__name__)

print('debug parameter is', self.parameter)

return func(a,b)

return wrap

@Debug('post')

def calculate(a,b):

c = a * b

return c

print(calculate(2,5))

"""

類裝飾類

7 帶參數的類裝飾器 裝飾 帶參數的類

"""

class Debug(object):

def __init__(self, parameter):

self.parameter = parameter

def __call__(self, func):

def wraps(a,b):

print('function name is', func.__name__)

print('debug parameter is', self.parameter)

return func(a,b)

return wraps

@Debug('get')

class Calculate(object):

def __init__(self,a,b):

self.a = a

self.b = b

def cal(self):

num = self.a + self.b * self.a

return num

c = Calculate(5,3)

print(c.cal())

總結

以上是生活随笔為你收集整理的python 装饰器 java,python之各种装饰器的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

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