函数是独立的代码块,通过名字调用,而方法是定义在类中的函数,需要通过类的实例来调用,通常带有self参数。
1. 函数
定义:独立的代码块,通过名称直接调用;
作用域:可以存在于模块(文件)中,或通过导入其他模块使用;
调用方式:直接通过函数名调用(如my_function()
),或通过模块名前缀调用(如math.sqrt()
);
2. 方法
定义:绑定到类或对象的函数,必须通过类的实例(对象)调用;
作用域:属于类或对象的一部分;
调用方式:通过类或对象实例调用(如 obj.method()
),隐式传递 self 参数(实例自身)。
区别
概念 | 函数(Function) | 方法(Method) |
定义 | 独立代码块,直接通过名称调用 | 绑定到类或对象的函数,通过实例调用 |
调用方式 |
或 |
|
示例 |
, |
, |
是否需要 | 是(若属于模块或对象) | 是(必须通过对象实例) |
代码示例
#function
def standalone_function():
print("I am a function")
standalone_function() #直接调用
#method
class MyClass:
def class_method(self):
print("I am a method")
obj = MyClass()
obj.class_method() #通过实例调用