有没有一种方法可以轻松地公开python类内部对象的APi而不必重新键入该对象的每个APi?例如,我写了一个redis replica类,我所有的函数都是
def get_connection(self, name):
........
host, conn = self.colo_rings[name]
return conn
def hgetall(self, name):
return self.get_connection(name).hgetall(name)
def hset(self, name, key, value):
return self.get_connection(name).hset(name, key, value)
def hsetnx(self, name, key, value):
return self.get_connection(name).hsetnx(name, key, value)
def hdel(self, name, *key, colo=None):
return self.get_connection(name).hdel(name, *key)
我如何改进这个代码,使它不那么“难看”?在
您应该能够使用类似的方法:
这里的优点是,您仍然可以通过在类上定义它们来使用连接中不存在的方法,但是当您尝试通过
myB.hgetall()
访问连接时,将使用您没有定义的以及连接上存在的任何方法(例如)。在对于完整性-
^{pr2}$__getattr__
就足够了:相关问题 更多 >
编程相关推荐