python - 类的装饰器里的__call__参数问题
巴扎黑
巴扎黑 2017-04-18 10:15:00
0
1
371

新手初学python,输出的结果跟我想象中不一样

 `#定义一个类的装饰器Bold
class Bold(object):
    def __init__(self, func):
        self.func = func
    def __call__(self, *args, **kwargs):
        return '<b>' + self.func(*args, **kwargs) + '</b>'
        
   
    #相当于 hello=Bold(hello) 生成一个hello.func为hello函数的
    #Bold实例化对象  
    @Bold                        
    def hello(name):
        return 'hello %s' % name`
        
    #然后我打算传多个参数 *args
    >>> hello('ss','sss','aa')
    File "<stdin>", line 5, in __call__
    TypeError: hello() takes exactly 1 argument (3 given)`
    
    

这里完全不理解,这里的hello()里的参数不是__call__的args, *kwargs 吗,为什么变成只能是一个参数?

巴扎黑
巴扎黑

最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!