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

Python中带.的方法与无点函数的使用场景区分疑问

Python中对象方法与全局函数的区分

核心区别

带点的是对象方法,属于某一特定数据类型的实例;无点的是内置全局函数,是通用工具,不绑定单一数据类型。

什么时候用带点的对象方法?

  • 功能是某类数据独有的:比如str.lower()是字符串专属的转小写功能,只有字符串对象能调用;list.pop()是列表专属的删除末尾元素功能,其他类型用不了。
  • 操作围绕调用它的对象本身:有些方法会修改原对象(比如list.append()直接给原列表加元素),有些会返回新对象但不改动原对象(比如str.lower()返回新的小写字符串,原字符串不变)。

什么时候用无点的全局函数?

  • 功能是跨类型通用的:比如sorted()可以处理列表、元组、字符串等所有可迭代对象;len()能获取字符串、列表、字典、集合等各种对象的长度;sum()可以计算列表、元组甚至生成器的总和。
  • 通常返回新结果,不修改原对象:比如sorted([3,1,2])会返回一个新的排序列表,原列表[3,1,2]保持不变;而list.sort()是直接修改原列表。

特殊情况:既有方法又有全局函数

有些功能同时存在两种实现,比如排序:

  • 用list.sort():直接在原列表上排序,不返回新值(或者说返回None),适合不需要保留原列表的场景。
  • 用sorted(list):返回新的排序列表,原列表不动,适合需要保留原始数据的场景。

内容的提问来源于stack exchange,提问作者abhinav_2143

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:19:52