def foo(**d):
print(type(d))
d = UserDict()
foo(**d)
我看 UserDict 实现并没有什么特别之处,所以这个执行过程是怎么样的?我想让一个继承 object 的类也可以被** 操作该怎么做?
其实 **myobject.to_dict()
也能满足需求,但是太丑了,而且这个 myobject 意义上就是一个 dict
,只不过实现了 __getitem__
所以可以 myobject.dictkey
这么调用,各位有什么黑魔法实现吗?
1
zeiyso 2016-09-08 16:50:55 +08:00 1
|
2
petelin OP @zeiyso 好神啊,我搜了半天都没搜到。。。 我的关键词: python create double start class ,
有一个问题,如果我继承了 mapping, 调用 myobject.items , items 就会当做方法,而不执行 __getitem__ ,这个有什么办法吗? 我需要一个纯净的命名空间,至少里面不能有非 _ 开头的关键字 |