python中的函数和方法有什么区别?

函数是独立存在的代码块,可直接调用,如len()、print();方法定义在类中,需通过对象调用,如str.upper(),且隐含接收self或cls参数。

函数和方法在Python中看起来很相似,但它们的关键区别在于定义的位置和调用方式。

函数(Function)

函数是独立存在的代码块,不依赖于类或对象。它通过def关键字定义,并可以直接调用。

说明:函数属于模块或脚本的全局作用域,可以被任意地方调用。

  • 不需要依附于类
  • 可以直接使用函数名调用
  • 例如:len()print() 都是内置函数

方法(Method)

方法是定义在类中的函数,它与类的实例或类本身相关联。方法必须通过对象或类来调用。

说明:方法的第一个参数通常是self(实例方法)或cls(类方法),表示当前实例或类。

  • 定义在类内部
  • 需要通过对象访问,如 obj.method()
  • 例如:字符串的 str.upper() 是一个方法

关键区别总结

  • 函数是独立的,方法属于类或对象
  • 调用方式不同:函数直接调,方法通过点号调用
  • 方法隐含接收调用者作为第一个参数(如 self)

基本上就这些。理解清楚它们的归属和调用方式,就能准确区分函数和方法。