Python中method与function的具体区别是什么?以len()和string.upper()为例
Python中函数(Function)与方法(Method)的区别
核心区别一句话:函数是独立的工具,方法是绑定在对象上的专属工具。下面结合你提到的例子详细拆解:
具体对比:len() vs string.upper()
1. len() 是函数
- 它是Python内置的独立功能,不属于任何特定类型的对象,你可以把它理解成一个通用的“测量工具”。
- 调用时需要主动把要操作的对象传给它:
my_list = [1,2,3] my_str = "test" print(len(my_list)) # 传入列表,返回长度3 print(len(my_str)) # 传入字符串,返回长度4 - 本质上,
len()会去调用对象内部的__len__方法,但这个过程对用户是透明的——你只需要把对象丢给它就行,不用关心对象本身的细节。
2. string.upper() 是方法
- 它是字符串(
str)类型专属的功能,只能通过字符串对象来调用,相当于字符串自带的“大写转换工具”。 - 调用时必须通过
.从字符串对象上触发:my_str = "hello" print(my_str.upper()) # 返回"HELLO" # 错误用法:upper(my_str) 直接调用会报错,因为upper不是独立函数 - 方法内部会自动把调用它的对象(这里就是
my_str)作为第一个参数(通常命名为self)传入,所有操作都是针对这个对象进行的。
更直观的区分点
- 调用形式:函数是
函数名(对象),方法是对象.方法名() - 归属关系:函数属于全局/模块,方法属于特定的类(比如
str类、list类) - 参数逻辑:方法的第一个参数由Python自动传入,函数的所有参数都需要手动传递
内容的提问来源于stack exchange,提问作者Fateme
相关产品推荐
相关产品推荐

