【发布时间】:2012-06-11 11:36:29
【问题描述】:
我的程序中有几个对象,每个对象都有大约 10-15 个属性。这些属性设置在程序各个阶段的代码中的各个位置。由于无需在 Python 的类中定义它们就可以将它们设置在对象上,因此在我的程序中没有很好的权威列表来说明使用了哪些属性。
我想要以下内容:
class MyObject(object):
attr1
attr2
我查看了内置的 property(),但每个属性至少有 6 行代码。有没有一种简单的方法来定义默认属性列表而无需在 Python 中初始化它们?
更新:我忘了说,大多数值没有合理的默认值,在使用之前实际上等于None。
【问题讨论】:
-
你想要那些没有添加默认值的
None吗?不确定如何处理更新中的信息... -
我真的不知道最pythonic的方式是什么,我只知道我不能在对象创建时给所有属性一个值。
-
通常它们都在
__init__()方法中定义,即使只是将它们设置为0、None或''作为记录它们的一种方式。另一方面,除非对象处于某种状态,否则完全允许不定义一个,但其他人可能更难理解。 -
还有隐含的,来自使用对象的代码,而不是类定义。将它们设置为
None就可以满足我的目的。 -
PEP 20 -- The Zen of Python 中的第二件事是“显式优于隐式”。只是说... ;-)
标签: python properties attributes