python中方法与函数的区别与联系

今天huskiesir在对列表进行操作的时候,用到了sorted()函数,偶然情况下在菜鸟教程上看到了内置方法sort,同样都可以实现我对列表的排序操作,那么方法和函数有什么区别和联系呢?

如下是我个人总结:

1.调用的方式不一样:

函数:通过”函数名()”的方式调用

方法:通过“对象.方法名”的方式调用

2.作用域不一样:

函数内出现的有关计算、赋值等操作,在函数运行完之后里面的结果不会保留

方法则是实实在在影响到当前环境

list1 = [0, 1, 2, 3, 4, 5]
list2 = [0, 1, 2, 3, 4, 5]

def string_sort1():
    list1.sort(reverse=True)
    print(list1)

def string_sort2():
    sorted(list2, reverse=True)
    print(list2)

string_sort1()
string_sort2()
#以下是输出结果,验证了上文:
[5, 4, 3, 2, 1, 0]
[0, 1, 2, 3, 4, 5]

3. 在实例化中

class Foo(object):
    def func(self):
    pass
#实例化
obj = Foo()

#执行方式一:调用的func是方法
obj.func() #func 方法

#执行方式二:调用的func是函数
Foo.func(123) # 函数

总结:

发现同样的几行代码在不同场景应用叫法就不同,对象调用的叫方法,类调用的就是函数。