函数是面向过程的产物,强调“怎么做”;而方法是面向对象的产物,它不仅包含“怎么做”的代码,还绑定了“谁来做”的状态。
虽然语法结构相似,但方法因为拥有了 self
- 函数(Function):是独立存在的。它不依赖于任何特定的对象或类。你可以直接通过它的名字调用它,只要传入需要的参数即可。
- 方法(Method):是依附于对象的。它被定义在类的内部,通常用于对类的属性进行操作。你不能凭空调用一个方法,必须先创建类的实例(对象),然后通过
对象.方法() 的方式来调用。
- 函数:无法直接访问对象的内部数据或属性。如果它需要处理某些数据,必须通过参数显式地传进去。
- 方法:天生拥有访问和修改当前对象属性的能力。这就是为什么 Python 的方法第一个参数通常是
self,Java 等语言有隐式的 this。self 代表的就是当前对象本身,方法可以通过它自由地操作属于这个对象的私有数据。