How to define a class attribute with no default value in python
我是C开发人员,学习Python。
如果我想定义一个具有特定属性的类,但不提供属性的默认值,那该怎么做呢?
例如(这是我对如何操作的最佳猜测):
1 2 3
| class Spam
eggs = None
cheese = None |
或者,这是否合法:
1 2 3
| class Spam
eggs
cheese |
或者别的什么?
- 在您提供的两个选择中,第一个是合法的,但不是必要的。除非使用属性,否则不需要定义它们。python动态创建属性。
- @大卫:根据你想对变量做什么,你可能想在它们前面加上一个self.,见这里。
- 我的上帝。默认情况下,属性是静态的。谢谢你指出这一点。
您不需要。您稍后将分配给这些属性,或者将它们设置为None。
没有值的属性不是属性。由于是动态的,以后不必在类中声明属性就可以分配该属性。
- 嗯,你是说我的第一个代码建议是正确的吗?
- @大卫:是的。或者省略eggs和cheese。它完全取决于您试图实现什么,您的类将要呈现什么API。
- `由于是动态的,以后分配属性而不必在类中声明它是非常好的。'-好吧,我理解这一点,但是如果我预先定义了在我的IDE中代码完成对我有利的属性?
- @大卫:这取决于IDE,但理论上是的。我已将当前文件中定义的任何合法名称设置为tab complete。
- @大卫能帮上忙。设置为None不是问题,除非您希望使用None作为值。一般来说,定义您知道要在类上使用的变量是一个好主意,因为它使代码更容易理解。