python - 初始化类定义的可选变量,其默认值与实例变量相同

标签 python function class

我有一个带有可选参数的类定义。 我想用实例变量的值启动可选参数。 这可能吗?

示例:

class Helloworld:
    def __init__(self):
        self.var1 = 'abc'
        self.var2 = 123

  def printString(info, message=self.var1):
      print(info + ' - ' + message)

在此示例中,我想启动 printStringmessage 参数,与实例变量 var1 相同

最佳答案

没有。这是不可能的。

在定义 printString 时,还没有实例(即 self 未定义)。

相反,使用 None 作为默认值并在必要时进行分配:

class Helloworld:
    def __init__ (self):
        self.var1 = 'abc'
        self.var2 = 123

    def printString (self, info, message=None):
        if message is None:
            message = self.var1
        print(info + ' - ' + message)

另请注意,您没有将 self 传递给 printString,因此 info 将不会包含您可能期望的内容。

关于python - 初始化类定义的可选变量,其默认值与实例变量相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44780630/

相关文章:

python - 通过 Python 查找和分组字谜

c++ - 为什么我的结构只在最后一个而不是每个上存储字符串?

ios - 选择器 View 函数未调用

C++ 指针运行时错误 - 使用指针设置变量然后检索

html - 在不影响其他人的情况下更改类的CSS

c++ - Visual C++ Studio 2010 无故显示生成错误

python - argparse 的默认参数

python - 在 openpyxl 中保护工作簿

python - 如何导入带有 d'type 列表而不是 str 的 csv 列

ios - Swift 函数参数默认值