PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
Python
[问题] class method alias
楼主:
amigcamel
(阿吉amig)
2015-11-18 17:20:18
说实在我也不知道怎么样定这个标题
直接上code
应该会比较清楚
#这边我以redis-py作为范例,问题本身与redis毫无关系
import redis
class Redis:
def __init__(self):
self.conn = redis.StrictRedis()
# 这边我想要让self的method直接继承self.conn下面的所有methods
# (不知道用“继承”这个词对不对)
self.keys = self.conn.keys
self.hget = self.conn.hget
self.hgetall = self.conn.hgetall
self.delete = self.conn.delete
client = Redis()
于是乎
我今天如果要得到所以keys
我可以用
client.keys('*')
也就完全等于
client.conn.keys('*')
我可以手动在__init__里面
一个一个慢慢对应
但是这样就违反DRY的原则了
而且也很不聪明
这样作的目的只是想让code短一点
不知道这种技巧叫什么
作者:
uranusjr
(â†é€™äººæ˜¯è¶…級笨蛋)
2015-11-18 17:46:00
实作 __getattr__ 然后用 getattr(self.conn, name)参考
http://d.pr/19YDh
和
http://d.pr/11fNI
作者:
bibo9901
(function(){})()
2015-11-18 18:07:00
这样不算违反DRY啊? 只是code长一点而已不然也可以这样
http://tinyurl.com/o5cyvsk
用__getattr__等于你所有attr都去self.conn找了, 那又何必新弄一个class
继续阅读
[问题] python的套件有跨平台吗?
tas72732002
[问题] 关于时区设定的问题
herbacin
[问题] 关于 Flask 奇怪问题
herbacin
[问题] pandas 转 numpy.array
HANASE
Re: [问题] Python 大数据处理
MOONY135
[问题] Python 大数据处理
decken
[问题] Linux下透过anaconda安装igraph
vincentflame
Re: [问题]关于igraph安装问题
vincentflame
[问题] 安装完scapy后执行scapy出现这个error
Dong0129
[问题] 关于GUI的开发
std610706
Links
booklink
Contact Us: admin [ a t ] ucptt.com