【问题标题】:How to define a class attribute with no default value in python如何在python中定义没有默认值的类属性
【发布时间】:2013-02-08 12:12:20
【问题描述】:

我是一名学习 python 的 C# 开发人员。

如果我想定义一个具有某些属性的类,但不提供属性的默认值,那是怎么做的?

例如(这是我最好的猜测):

class Spam
    eggs = None
    cheese = None

或者,这是否合法:

class Spam
    eggs
    cheese

还是别的什么?

【问题讨论】:

  • 在您提供的 2 个选项中,第一个是合法的,但不是必需的。除非使用属性,否则无需定义它们。 Python 动态创建属性。
  • @David:根据您要对变量执行的操作,您可能需要在它们前面加上 self. see here
  • 我的上帝。默认情况下,属性是静态的。感谢您指出这一点。

标签: python class python-2.7


【解决方案1】:

你没有。您稍后分配属性,或将它们设置为None

没有值的属性不是属性。由于是动态的,稍后再分配属性就可以了,而不必在类中声明它。

【讨论】:

  • 嗯,你的意思是我的第一个代码建议是正确的吗?
  • @David:确实。或者完全省略 eggscheese。这完全取决于您要实现的目标,您的类将提供什么 API。
  • `由于是动态的,稍后再分配属性就可以了,而不必在类中声明它。 - 好的,我明白这一点,但大概如果我在 IDE 中预定义从代码完成中受益的属性?
  • @David:这取决于 IDE,但理论上是可以的。我已将当前文件中定义的任何合法名称设置为制表符完成。
  • @David 这可以提供帮助。设置为 None 不是问题,除非您想使用 None 作为值。一般来说,定义你知道你将在类上使用的变量是一个好主意,因为它使代码更容易理解。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-27
  • 2021-05-13
  • 1970-01-01
  • 2011-01-31
  • 1970-01-01
  • 2012-08-15
相关资源
最近更新 更多