0
点赞
收藏
分享

微信扫一扫

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)

方便复用

不宜复用,容易出错

方便扩展

升级、扩展,都十分复杂

方便维护

不便维护

 

 

 

 

 

 

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

举报

相关推荐

0 条评论