You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 22:45:34