Python入门新手(0.1级)求助:如何区分函数与方法?
区分Python中的函数(Function)与方法(Method)
嘿,完全不用为基础问题致歉——每个程序员都是从搞不清这些概念起步的!我来帮你把函数和方法的区别讲得明明白白,结合你提到的例子来拆解:
核心区别一句话
方法是**绑定到对象(或类)**的函数,必须通过对象/类来调用;而普通函数是独立的,不需要依附任何对象,直接调用就行。
举例子对比理解
方法的例子:比如你有个列表
my_list = [1, 2, 3],调用my_list.append(4)时,append就是方法。它属于这个列表对象,你没法直接写append(4)来用(除非手动导入,但没人会这么干)——因为方法天生和它所属的对象绑定,调用时Python会自动把这个对象作为第一个参数(也就是方法里的self)传进去。函数的例子:
- 你提到的
len(my_list)就是典型的独立函数:它不隶属于任何对象,你直接调用它,把列表作为参数传进去就行,没有自动传递的self参数。 - 还有
random.choice([1,2,3]),这里的choice是模块random里定义的函数——模块本身也是一种对象,但它是模块级别的函数,不是某个类实例的方法,所以我们也把它归为函数范畴,调用时是通过模块来访问,而非某个实例对象。
- 你提到的
快速区分小技巧
- 看调用形式:如果是
对象.xxx(),那xxx大概率是方法;如果是xxx(对象),那xxx就是普通函数。 - 看定义位置:方法一般定义在类的内部,比如
list类里的append、pop;而函数要么是Python内置的全局函数(比如len、print),要么是定义在模块里的独立函数(比如random里的各种函数)。
这样再回头看你混淆的例子,是不是就清晰多啦?
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

