如何在 __init__ 中使用默认参数创建单独的类实例

维克拉姆

类定义:

class tr():
  def __init__(self,l=[]):
    self.l = l
  def added(self):
    self.l.append(1)
colt1 = tr()
colt1.added()
print(colt1.l)

输出为[1]在上述代码之后执行以下代码

colt2 = tr()
colt2.added()
print(colt2.l)

输出为[1, 1]

我希望第二段的输出也为[1],该类从init函数获取数据成员并且还具有默认参数。那么我应该如何改变代码来获得这个输出呢?

丹尼斯

标准的做法是为您的方法使用这种东西__init__

    def __init__(self, l=None):
        if l is None:
            l = []
        self.l = l

您可以查看此常见问题解答条目:https ://docs.python.org/3/faq/programming.html#why-are-default-values-shared-between-objects

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在类的__init__函数中使用canvas参数?

如何创建__init__函数?

如何在使用静态类变量的类的__init__中定义默认参数?

如何在Python中使用__init__方法?

如何在__init__之前向类添加属性?

如何在类的 __init__ 函数中使用 Raspberry pi gpio setup 和 pwm 命令?

如何排除父类的 __init__ 但包含父类的父类的 __init__?

如何从父类继承__init__属性到子类的__init__?

如何将参数传递给类中的__init__

如何在实例化对象时传递 **kwargs 并在类的 __init__() 方法中访问它

如何在不同类 __init__ 中的实例上调用类方法

如何在__init__中获取当前的Python类名,而不管“ self”的类如何?

如何在__init__中使用sphinx自动模块和公开函数

创建实例时默认调用__init__

Python - __init__ 参数

如何根据参数类型重载__init__方法?

如何根据参数指定应调用哪个__init__?

如何在其他函数中使用函数中的变量而不将变量放入类的 __init__ 方法中?

如何从子类中调用基类的__init__方法?

如何在其元类的__init__方法期间将方法绑定到类?

Python如何在不定义__init__的情况下知道实例变量?

如何在 __init__ 处将新的特殊方法附加到实例?

如何在不调用__init__的情况下获取Python中的类引用

如何使用 __init__ 在 python 中导入顶级文件

如何使用Notepad ++在__init__函数的末尾添加“-> None:”?

我如何使用__。init__并为python做OOP

如何在python 3中正确使用super().__init__()?

如何将__init__参数传递给使用qmlRegisterType注册的类?

如何使用__init__函数创建服务器协议类?