| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- # -*- coding: UTF-8 -*-
- ###============ 参数返回 ============###
- #
- # def echo(msg):
- # print(f"徐大虫{msg}!")
- # def outer(arg):
- # def inner():
- # print("*" * 30) # 新增功能
- # arg('hello')
- # print("*" * 30) # 上下都可新增功能
- # return inner
- # n = outer(echo) # python 封装为 @ 。如下:
- # n()
- ###============ 单个参数传递 ============###
- # def echo(msg):
- # print(f"徐大虫{msg}!")
- # def outer(arg):
- # def inner(s):
- # print("*" * 30) # 新增功能
- # arg(s)
- # print("*" * 30) # 上下都可新增功能
- # return inner
- # echo = outer(echo) # python 封装为 @ 。如下:
- # echo('active')
- ###============ 多个参数传递 ============###
- def echo(msg):
- print(f"徐大虫{msg}!")
- def outer(arg):
- def inner(*args, **kwargs):
- print("*" * 30) # 新增功能
- arg(*args, **kwargs)
- print("*" * 30) # 上下都可新增功能
- return inner
- echo = outer(echo) # python 封装为 @ 。如下:
- echo('hi!')
- @outer
- def show(msg):
- print(f"{msg} OK")
- show('xclouds')
- ###============ 写装饰器的固定格式 ============###
- def auth(func):
- def wrapper(*args, **kwargs):
- r = func(*args, **kwargs)
- return r
- return wrapper
- @auth # foo2 = auth(foo2)
- def foo2(msg):
- up_msg= msg.upper()
- return up_msg
- r = foo2('hello')
- print(r)
|