本人比较懒字体比较少,自己看
# -*- coding: utf-8 -*-
# todo 不带参数的装饰器 case1, case2, case3, case4
# todo case 1
# def kaishi(f):
# def kaishi1(asd):
# f(asd)
# return kaishi1
# @kaishi
# def lll(name):
# print(name)
# todo case 2 等效于 case1
# def kaishi(f):
# def kaishi1(asd):
# f(asd)
# return kaishi1
#
#
# def lll(name):
# print(name)
# lll = kaishi(lll)
# lll('aaaas')
# todo case3 等效于 case1,case2
# class kaishi():
# def __init__(self,f):
# self.f = f
# def __call__ (self,asd):
# self.f(asd)
# # @kaishi
# # def lll(name):
# # print(name)
#
# def lll(name):
# print(name)
# lll = kaishi(lll)
# lll('aaaas')
# todo case4 等效于 case1,case2,case3,case4
# class kaishi():
# def __init__(self,f):
# self.f = f
# def __call__ (self,asd):
# self.f(asd)
#
# @kaishi
# class bekaishi():
# def __init__(self,name):
# print(name)
# bekaishi('aaaa')
# todo 带参数的装饰器
# todo case1
# def kaishi(name=None):
# print(name)
# def kaishi1(f):
# print(f)
# def kaishi2(name):
# print(name)
# f(name)
# return kaishi2
# return kaishi1
#
# @kaishi('name')
# def fuc(name):
# print(name)
# fuc('sadasd')
# todo case1 等效于 case2
# case2
# def kaishi(name=None):
# print(name)
# def kaishi1(f):
# print(f)
# def kaishi2(name):
# print(name)
# f(name)
# return kaishi2
# return kaishi1
#
# @kaishi('name')
# def fuc(name):
# print(name)
#
# aaa = kaishi('name')
# fuc = aaa(fuc)
# fuc('asasdas')
# todo case3 等效 case1,case2
class kaishi():
def __init__(self,name=None):
self.name = name
def __call__(self,f):
print(f)
def kaishi2(name):
print(name)
f(name)
return kaishi2
# @kaishi('name')
def fuc(name):
print(name)
aaa = kaishi('name')
fuc = aaa(fuc)
fuc('asasdas')