我在理解Python内置的函数和方法方面遇到了一些困难。据我所知,函数返回有关某事的信息,而方法则会更改某些内容。这是正确的吗?
我也不清楚为什么有些函数和方法需要参数,而另一些则不需要参数。这是否要求特定于函数或方法的参数质量?
最后,为什么这些内置函数/参数中的一些只在名称后面加上参数(例如sorted(list)),而另一些函数/参数(如list.sort())则在语法中使用句点?
发布于 2020-08-22 01:16:29
方法是适用于某个类的函数,而函数可以用于任何有效的类。就像用于sort类的list方法一样,对列表进行排序。可变类型的方法大多更改项,因此list.sort将list的值设置为list的排序值,并返回None。但是,字符串等不可变类型的方法将返回一个新的实例,如下所示。
question = "How is this?"
question.replace("How", "What") # Returns "What is this", but does not change question.
print(question) # Prints "How is this?"
print(question.replace("How", "What")) # Prints "What is this"内置于sorted之类的函数不更改项,它们返回一个新版本或实例。
list1 = [4,3,6,2]
sorted(list1) # Returns [2,3,4,6], but does not modify list.
print(list1) # Prints [4,3,6,2]
list1.sort() # Returns None, but changes list.
print(list1) # Prints [2,3,4,6]当使用方法时,在变量后面加上一个句点,以表明它只能用于特定的类。有些函数需要参数,而有些方法不需要参数,比如sorted(list)需要list,但是list.sort()不需要参数,原因是在类上使用方法时,默认情况下,Python传递一个名为self的参数,这个参数是实际的变量,在本例中是list。如果您曾经使用过JavaScript,那么self类似于JS中的this关键字。
因此,当您输入list.sort()时,Python实际上是在list类中运行函数sort,向它传递self的一个参数。
https://stackoverflow.com/questions/63531643
复制相似问题