Python中类(class)与函数(function)的区别

分享知识  传递快乐

 

在 Python 中一直以来都以为函数(function)和方法(method)是一个东西,但后来发现两者是不一样的,那么两者之间有什么区别呢?先看段代码:

代码1:

def fun():
    pass

print(fun)

结果如下:

<function fun at 0x000000000248A820>

代码2:

class Demo():
    
    def fun1(self):
        pass
    
    @classmethod
    def fun2(cls):
        pass
    
    @staticmethod
    def fun3(self):
        pass


demo = Demo()
print(demo)
print(demo.fun1)
print(demo.fun2)
print(demo.fun3)

结果如下:

<__main__.Demo object at 0x00000000006BE3D0>
<bound method Demo.fun1 of <__main__.Demo object at 0x00000000006BE3D0>>
<bound method Demo.fun2 of <class '__main__.Demo'>>
<function Demo.fun3 at 0x0000000002631E50>

由此得出:

  • 在class内定义的普通方法(fun1),因为它是要面向实例化对象的一个实例方法。
  • 在class内定义的类方法(fun2),它第一个参数必须是cls,并与class本身是绑定关系,它也属于方法,但不属于实例方法,可以被实例对象调用。
  • 在class内定义的静态方法(fun3),它与任何对象都没有联系,等同于是在class外定义的function,它属于函数。

还可以理解为与类或实例有绑定关系的 function 称之为方法(method),否则叫函数。

 

类(class)与函数(function)的区别:

类(class):类是面向你对象的,class可以保存一此属性的状态,同时也起到模板的作用,把一些通用的东西写进类定义中,也就是在'__init__'中。class有点像是将多个函数进行功能性封装

函数:函数更像是面向过程编程,更易理解,但是当系统较大时,重复性就会增多。

 

类(class)与函数(function)的优劣势:

类(class) 函数(function)
方便复用 不宜复用,容易出错
方便扩展 升级、扩展,都十分复杂
方便维护 不便维护

 

 

 

 

 

 

——————————
如有不足请留言指正
相互学习,共同进步

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章