文章目录 函数(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(): ...
是函数。