你知道是否有一个内置函数可以从任意对象构建字典吗?我想做这样的事情:
>>> class Foo:
... bar = 'hello'
... baz = 'world'
...
>>> f = Foo()
>>> props(f)
{ 'bar' : 'hello', 'baz' : 'world' }
注意: 它不应该包括方法。只有字段。
原文由 Julio César 发布,翻译遵循 CC BY-SA 4.0 许可协议
你知道是否有一个内置函数可以从任意对象构建字典吗?我想做这样的事情:
>>> class Foo:
... bar = 'hello'
... baz = 'world'
...
>>> f = Foo()
>>> props(f)
{ 'bar' : 'hello', 'baz' : 'world' }
注意: 它不应该包括方法。只有字段。
原文由 Julio César 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
请注意,Python 2.7 中的最佳实践是使用 新型 类(Python 3 不需要),即
此外,“对象”和“类”之间存在差异。要从任意 对象 构建字典,使用
__dict__
就足够了。通常,您将在类级别声明您的方法,在实例级别声明您的属性,所以__dict__
应该没问题。例如:更好的方法( 罗伯特 在评论中建议)是内置的
vars
函数:或者,根据您想要做什么,从
dict
继承可能会很好。那么你的类 已经 是一本字典,如果你愿意,你可以覆盖getattr
和/或setattr
来调用并设置字典。例如: