gpt4 book ai didi

python - 当方法更改对象 "in place"或返回新对象时是否有任何规则?

转载 作者:行者123 更新时间:2023-12-01 07:48:34 24 4
gpt4 key购买 nike

我正在准备考试,总是有一些问题询问方法是在适当的位置更改对象还是创建新对象。我想知道是否有任何适用于此的一般规则,或者我是否只需要记住不同方法的结果?

我的考试示例是:

s = 'horse'
s.upper()
print(s)

这将生成 horse 而不是 HORSE,因此 s 不会被 .upper 更改,但是

l = [1, 3, 2]
l.sort()
print(l)

将生成 [1, 2, 3] 而不是 [1, 3, 2],因此 l 会被 .sort 改变>

有什么方法可以区分它们吗?

最佳答案

没有真正通用的方法来记住这一点。您需要根据个人情况进行内存。您通常可以记住,字符串是不可变并且永远改变的。您可以特别记住 .sort方法显式返回 None提醒人们它已就位排序,并且您需要使用 sorted()如果您想要副本,请使用此函数。但这些都是特定于字符串和排序的,知道这根本无法帮助您进行概括。

一般来说,这些知识只是随着使用而积累。在实际的日常编程中,没有人需要记住这一点,因为您在编码时总是会敲打文档和/或在交互式命令行上尝试小片段以确认其工作原理。为了考试而死记硬背,对以后的使用没有任何实际意义;可能您应该记住类(class)中明确提到的几种类型和函数,如果您遇到迄今为止未知的类型,您的猜测将与我的一样好。

关于python - 当方法更改对象 "in place"或返回新对象时是否有任何规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56340784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com