【问题标题】:Python : ignorable arguments in a class.Python:类中可忽略的参数。
【发布时间】:2014-04-03 17:30:12
【问题描述】:

我有一个有 3 个参数的类,但是,有时我希望只能将两个参数传递给该类,因此如果没有任何内容传递给第三个参数,它将变为默认值。

我想做的是这样的(伪代码)

class car(object):

    def __init__(self, color, length, numWheels):

          if numWheels == null:
              numWheels = 4

在 Py 中有没有办法做到这一点?

【问题讨论】:

标签: python class arguments


【解决方案1】:

您可以使用默认参数值

def __init__(self, color, length, numWheels = 4):

所以你可以这样称呼它:

c = car('black', 5, 8)
c = car('black', 5)

注意事项:

  • 我建议您关注Python naming conventions。将您的班级命名为 Car 而不是 car

  • null 在 Python 中不存在。你应该阅读None(类似)。

  • 在使用默认参数值时,您必须注意,如果它是可变对象,它将被评估一次,而不是每次创建对象时。

【讨论】:

  • 这不会总是将 numWheels 设置为 4 吗?即使传入了参数?
  • 不,这叫默认参数值。
  • 请注意,如果参数的默认值是可变对象,它将在编译时评估,而不是在运行时评估。如果您不是荷兰人,这可能会导致意外行为。
猜你喜欢
  • 2018-02-04
  • 2019-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-19
  • 2021-03-07
相关资源
最近更新 更多