Skip to main content
 首页 » 编程设计

Python 方法 : modify original vs return a different object

2025年05月04日24luoye11

我是 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] 

这些都是常态吗?对于给定的类和方法,有没有办法知道我正在处理哪种情况?

请您参考如下方法:

您的示例显示了不可变内置对象(例如字符串和元组)与可变对象(例如列表、字典和集合)之间的区别。

一般来说,如果一个类(对象)被描述为不可变的,您应该期望前者的行为,以及可变对象的后者。