python - 使用数组作为默认值初始化的 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 - 如何使“render_template”功能化?
- html - hr 标签在彩色背景下显示 2 种颜色的线条
- android - 如果不为空则更新对象的属性,如果为空则创建新对象然后设置属性
- php - Laravel 模型 - 计算平均评分
- python-3.x - 如何根据可用内存确定批次的大小?
- ios - Odata服务消费使用Sap cloud kit for ios
- typescript - 为什么我必须在我的 OpenLayer 的附加库中创建一个无用的源来查看我的绘图?
- javascript - 有没有办法计算地形上两个坐标之间的距离,而不是像乌鸦飞一样?
- javascript - 如何使图像缩放到 div 的大小 [ReactJS TS]
- reactjs - 在嵌套组件之间传递状态