返回值的方法对原始数据类型进行更改的方法



在了解了不同的数据类型后,我了解到一旦创建了给定类型的对象,它就有了可以做"事情"的固有方法。我注意到,当一些方法返回值时,另一些方法会对存储的原始数据进行更改。

这两种类型的方法有什么具体的术语吗?对于哪些方法返回值,哪些方法进行更改,有什么直觉或逻辑吗?

例如:

abc= "something"
defg= [12,34,11,45,132,1]
abc.capitalise()   #this returns a value
defg.sort()        #this changes the orignal list

这两种方法有什么特定的术语吗

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

对于哪些方法返回值,哪些方法进行更改,有任何直觉或逻辑吗?

有些Python对象是不可变的(字符串、数字、元组等(,所以当你处理其中一种类型时,你知道你不会有任何赋值函数。除了这种特殊情况,不,你必须检查一下文件。这里唯一的命名约定是,名称以"set_"开头并带有一个参数的方法将根据其参数更改对象的状态(通常不返回任何内容(,而名称以"get_"开头且不带有任何参数的方法则将返回有关对象状态的信息并不更改任何内容(您经常会看到前面的方法名为"setters",后面的方法名"getters"(,但是,就像任何约定一样,只有遵循它的人才能遵循它,IOW并不认为因为方法名称以"get_"或"set_"开头,所以它确实会按预期运行。

字符串是不可变的,因此所有进行字符串操作的库都将返回一个新字符串。

对于其他类型,您必须参考库文档。

最新更新