函数内置方法:
函数的名字和注释:
def test():
'''
这里是注释
'''
print('this is test')
name = test.__name__
doc = test.__doc__
print(name) # test
print(type(name)) # str
print(doc) # 这里是注释
被装饰函数的内置方法:
正常的内置函数因为本质上是调用了装饰器里的inner函数,所以不能正常调用函数内置方法
需要使用functools模块的wraps达到正常调用被装饰函数内置方法的目的:
from functools import wraps
def wrapper(f):
@wraps(f)
def inner(*args, **kwargs):
print('before test')
res = f(*args, **kwargs)
print('after test')
return res
return inner
@wrapper
def test():
'''
这里是注释
'''
print('this is test')
test() # before test this is test after test
name = test.__name__
doc = test.__doc__
print(name) # test
print(type(name)) # str
print(doc) # 这里是注释