
为什么我用 getattr 反射的方式,获得了 before 这个函数的句柄,然后调用总是说我参数不对?
要么就说 session 这个参数传进去两次,要么就说 before 这个方法需要 2 个参数,我传了 3 个
@staticmethod def manage_rest_api(): def decorator(func): session = http_session() before = getattr(self, "before_response") before(self, session=session) rst = func(self) return rst return wrapper return decorator def before(self, session=None): pass 说白了就是这一行:before(self, session=session),感觉我写成这样就行了 before(session=session)
有人知道为什么么?
1 kier 2017-06-17 21:12:30 +08:00 你会用:self.before_response(self, session=session) 还是用:self.before_response(session=session) |
2 honmaple 2017-06-17 21:19:09 +08:00 其实我不太明白 before = getattr(self, "before_response") 中的 self 是怎么来的 |
3 lrxiao 2017-06-17 21:56:49 +08:00 getattr(x, y) = x.y |