我是 Python 和面向对象编程的新手,有一个非常基本的 101 问题:
我看到一些方法返回修改后的对象,并保留原始对象:
In: x="hello"
In: x.upper()
Out: 'HELLO'
In: x
Out: 'hello'
我看到其他方法修改并覆盖了原始对象:
In: y=[1,2,3]
In: y.pop(0)
Out: 1
In: y
Out: [2, 3]
这些都是常态吗?对于给定的类和方法,有没有办法知道我正在处理哪种情况?
请您参考如下方法:
您的示例显示了不可变内置对象(例如字符串和元组)与可变对象(例如列表、字典和集合)之间的区别。
一般来说,如果一个类(对象)被描述为不可变的,您应该期望前者的行为,以及可变对象的后者。
