函数是独立可调用对象,方法是绑定在对象上的函数;函数直接调用如greet("Alice"),方法需通过对象调用如d.bark(),关键区别在于调用方式及是否隐含绑定对象参数。
函数是独立存在的可调用对象,方法是绑定在对象(通常是类实例)上的函数。
函数:不依赖对象,直接调用函数是定义在模块或全局/局部作用域中的独立代码块,调用时不需要依附于任何对象。比如len()、print()、max()都是内置函数;你自己用def
定义的也是函数:
def greet(name): return f"Hello, {name}"
调用方式:
greet("Alice")—— 直接传参,不涉及对象方法:属于对象,隐含第一个参数方法本质是定义在类内部的函数,但被“绑定”到了类或其实例上。调用时会自动传入绑定的对象作为第一个参数(通常是self或cls
):
class Dog: def bark(self): return "Woof!"d = Dog(),然后d.bark()就是调用实例方法,self自动指向d类方法(@classmethod)和静态方法(@staticmethod)也属于方法,只是绑定规则不同关键区别在调用方式和绑定关系函数调用:纯靠名字 + 括号,如abs(-5)方法调用:必须通过对象(或类)访问,如"hello".upper()、list.append([1], 2)底层看:方法其实是“带绑定的函数”,Python 在点号调用时自动做了封装(例如str.upper是函数,"abc".upper是绑定方法)
一个简单验证方式你可以用type()和repr()
看区别:
Python 3.14.3微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。
下载立即学习“Python免费学习笔记(深入)
”;
type(len) →
type(str.upper) →
基本上就这些。记住:有没有“.”前面的对象,是区分函数和方法最直观的信号。
