首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python内建函数与内建方法的区别

Python内建函数与内建方法的区别
EN

Stack Overflow用户
提问于 2020-08-22 01:03:28
回答 1查看 1K关注 0票数 1

我在理解Python内置的函数和方法方面遇到了一些困难。据我所知,函数返回有关某事的信息,而方法则会更改某些内容。这是正确的吗?

我也不清楚为什么有些函数和方法需要参数,而另一些则不需要参数。这是否要求特定于函数或方法的参数质量?

最后,为什么这些内置函数/参数中的一些只在名称后面加上参数(例如sorted(list)),而另一些函数/参数(如list.sort())则在语法中使用句点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-22 01:16:29

方法是适用于某个类的函数,而函数可以用于任何有效的类。就像用于sort类的list方法一样,对列表进行排序。可变类型的方法大多更改项,因此list.sortlist的值设置为list的排序值,并返回None。但是,字符串等不可变类型的方法将返回一个新的实例,如下所示。

代码语言:javascript
复制
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之类的函数不更改项,它们返回一个新版本或实例。

代码语言:javascript
复制
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的一个参数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63531643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档