文章目录 函数(Function)与方法(Method)的区别 一、函数(Function) 二、方法(Method) 三、函数 VS 方法 四、Python 中的三种方法类型 五、总结
函数(Function)与方法(Method)的区别
在 Python 中,函数和方法 都是用于封装可重用代码的结构,但它们的使用场景和定义方式不同。
一、函数(Function)
1 定义
使用 def 关键字定义。 不属于任何类 ,可以独立存在。
2 示例
def greet ( name) : print ( f"Hello, { name} !" ) greet( "Alice" )
3 特点
定义位置:可以在模块层级、脚本中直接定义 调用方式: 直接通过函数名调用:greet("Alice") 参数:没有隐式传入的 self 或 [cls]
二、方法(Method)
1 定义
定义在 类内部 的函数。 第一个参数通常是 self(实例方法)或 [cls]
2 示例
class Person : def __init__ ( self, name) : self. name = namedef greet ( self) : print ( f"Hello, I'm { self. name} " ) p = Person( "Bob" )
p. greet( )
3 特点
定义位置 :必须写在类内部 调用方式:通过对象调用:p.greet(),自动传入 self 参数: 第一个参数通常是 self,表示对象本身
三、函数 VS 方法
类比 函数 方法 功能 独立功能块 属于某个对象的行为 举例 len(list)、print()list.append(1)、str.upper()谁拥有它? 没有“主人” 属于某个类或对象
四、Python 中的三种方法类型
类型 第一个参数 使用场景 实例方法 self最常见,操作对象数据 类方法 cls操作类本身,如构造器工厂 静态方法 无 工具函数,逻辑与类/对象无关
1 示例:
class MyClass : @classmethod def class_method ( cls) : print ( "I'm a class method" ) @staticmethod def static_method ( ) : print ( "I'm a static method" )
MyClass. class_method( )
MyClass. static_method( )
五、总结
函数 是独立存在的,不依附于任何类或对象;方法 是定义在类中的函数,必须通过对象或类来调用;在类中写的 def xxx(self): ... 都是方法; 在模块顶层写的 def xxx(): ... 是函数。