9.11 装饰器为被包装函数增加参数
问题:想要给被包装的函数增加额外的参数,但是不可以改变该函数的现有调用规则
方案:可以使用关键字参数来给被包装的函数增加额外的参数
from functools import...spam(a,b,c):
print(a,b,c)
spam(1,2,3)
1 2 3
spam(1,2,3,debug=True)
Calling spam
1 2 3
通过装饰器给被包装的函数增加参数并不常见...问题:想要通过改变实例创建的方式来实现单例、缓存、等特性
方案:如下
# 我们知道python创建的类可以像函数一样调用它来创建实例
class Spam:
def __init__(self...__init__(*args, **kwargs)
self...._expected_type):
raise TypeError('type Error')
instance.__dict__[self.