gpt4 book ai didi

python - 返回值的方法会更改原始数据类型

转载 作者:行者123 更新时间:2023-12-01 09:13:45 25 4
gpt4 key购买 nike

在了解了不同的数据类型之后,我了解到一旦创建了给定类型的对象,它就具有可以执行“操作”的固有方法。经过尝试,我注意到,虽然有些方法返回一个值,但其他方法会更改存储的原始数据。

对于这两种类型的方法是否有任何特定术语,对于哪些方法返回值以及哪些方法进行更改是否有任何直觉或逻辑?

例如:

abc= "something"

defg= [12,34,11,45,132,1]

abc.capitalise() #this returns a value

defg.sort() #this changes the orignal list

最佳答案

Is there any specific term for these two types of methods

改变对象状态的方法(即list.sort())通常称为“更改器(mutator)”(它“变异”对象)。返回值的方法没有通用名称 - 它们可以是“getters”(不带参数并返回对象状态的一部分的方法)、替代构造函数(在类本身上调用的方法,并提供另一种构造方法)类的实例),或者只是接受一些参数的方法,根据参数和对象的状态进行一些计算并返回结果,或者实际上只是做任何事情(进行一些计算并更改对象的状态并返回一个值) .

is there any intuition or logic as to which methods return a value and which make changes?

一些 Python 对象是不可变的(字符串、数字、元组等),因此当您处理其中一种类型时,您知道您不会有任何更改器(mutator)。除了这种特殊情况,不,你必须检查文档。这里唯一的命名约定是,名称以“set_”开头且采用一个参数的方法将根据其参数更改对象的状态(并且通常不返回任何内容),而名称以“get_”开头且不采用任何参数的方法将根据其参数更改对象的状态(并且通常不返回任何内容)。返回有关对象状态的信息并且不进行任何更改(您经常会看到前者名为“setter”,后者名为“getters”),但与任何约定一样,它仅被遵循它的人遵循,IOW 并不认为因为方法名称以“get_”或“set_”开头,它确实会按预期运行。

关于python - 返回值的方法会更改原始数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51421621/

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