也许我忽略了一些简单的东西,但我想在python中将一个自定义类的实例转换为字典(为了便于阅读),但是还没有得到如何说明.要以伪代码解释,我希望能够这样做:
class A: # class things... a = A() b = dict(a)
我在哪里定义了b内在的东西A.这可能吗?
如果你定义__iter__,那就Just Work(tm):
class A(object):
def __init__(self, a, b):
self.a = a
self.b = b
def __iter__(self):
return vars(self).iteritems()
Run Code Online (Sandbox Code Playgroud)
给
>>> A(2,3)
<__main__.A object at 0x101ea70d0>
>>> dict(A(2,3))
{'a': 2, 'b': 3}
Run Code Online (Sandbox Code Playgroud)
你可以回报或屈服于你喜欢的任何东西.也就是说,我在评论中提出的建议是你应该真正实现一个.to_dict()方法,因为__iter__对于其他目的来说,这对于浪费这个方法往往太有用了.
| 归档时间: |
|
| 查看次数: |
1267 次 |
| 最近记录: |