首页 > 解决方案 > 使用数组作为默认值初始化的 Python 类

问题描述

我最近在一个简单的情况下发现了一种奇怪的行为。

class MyClass:
    def __init__(self, data=[]):
        self.data = data

    def add(self, data):
        self.data.append(data)
    
    def see(self):
        return self.data

r = MyClass()
r.add("nice item")
print(r.see())

u = MyClass()
print(u.see())

运行这个脚本返回了这个

['nice item']
['nice item']

这怎么可能?我假设 r 和 u 是 MyClass 的不同实例,但你返回添加到 r 中的数据。任何人都可以解释?

标签: python

解决方案


推荐阅读