Python中方法与函数的区别核心在于定义位置、调用方式和绑定关系:方法是与类关联的函数,通过实例或类调用且自动传递self
/cls
参数;函数是独立模块级代码块,直接调用且显式传递所有参数。
-
定义位置
函数定义在模块或类外部,如def add(a, b):
;方法必须定义在类内部,如class Calc: def add(self, a, b):
。 -
调用方式
函数直接调用:add(3, 5)
;方法需通过实例或类调用:calc.add(3, 5)
或Calc.class_add(3, 5)
。实例方法自动绑定self
,类方法绑定cls
。 -
参数传递
函数显式传递所有参数;方法隐式传递首个参数(实例方法为self
,类方法为cls
),静态方法除外(无自动参数)。 -
作用域与访问权限
函数无法直接访问类属性;方法可操作实例或类内部数据,支持封装(如self.value
)。静态方法虽定义在类中,但行为类似函数。
总结:选择函数还是方法取决于代码场景——独立功能用函数,对象相关操作用方法。理解差异能提升代码组织性和可维护性。