【问题标题】:How do you set a default value for a variable in Python3?如何在 Python3 中为变量设置默认值?
【发布时间】:2017-01-16 03:18:46
【问题描述】:

对于一个任务,我必须编写一个可以创建目录和文件的程序,我们必须编写一个 DirectoryEntry 类来帮助执行此操作,并且对于其中的一部分,我们必须为文件或目录创建一个名称。如果输入了名称,那么我们只使用名称,但如果没有输入名称,我们只使用 9 个空格。

我不知道如何使用 __init__ 方法来做到这一点,因为 Python3 不允许您拥有多个构造方法。

现在看起来像:

def __init__(self, name):
    self.type = "f:"
    self.name = name
    self.length = "0000"
    self.colon = ":"
    self.blocks = ["000", "000", "000", "000", "000", "000", "000", "000", "000", "000", "000", "000"]`    

【问题讨论】:

  • 你可以有一个默认参数,只要它不是一个可变对象。例如:def __init__(self, name=' '):。但是,9 个空格是一个合理的文件名吗?

标签: python default-value default-constructor


【解决方案1】:

你可以使用:

def __init__(self, name='your_default_name'):

然后您可以使用my_object() 创建该类的对象,它将使用默认值,或者使用my_object('its_name'),它将使用输入值。

【讨论】:

  • 谢谢大家 :)
【解决方案2】:

您可以使用默认参数:

def __init__(self, name='         '):

【讨论】:

    【解决方案3】:

    就这样设置,默认使用9个空格

    def __init__(self, name='        '):
            self.type = "f:"
            self.name = name
            self.length = "0000"
            self.colon = ":"
            self.blocks = ["000", "000", "000", "000", "000", "000", "000", "000", "000", "000", "000", "000"]
    

    More information

    【讨论】:

      【解决方案4】:

      将其指定为默认变量,如下所示

      def __init__(self, name=' '*9):
          self.type = "f:"
          self.name = name
          self.length = "0000"
          self.colon = ":"
          self.blocks = ["000", "000", "000", "000", "000", "000", "000","000","000","000", "000", "000"]
      

      【讨论】:

      • 他们也可以缩短self.blocks = ["000"] * 12。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-27
      • 2011-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-02
      • 2020-08-31
      相关资源
      最近更新 更多