Python中类(class)与函数(function)的区别
分享知识 传递快乐
在 Python 中一直以来都以为函数(function)和方法(method)是一个东西,但后来发现两者是不一样的,那么两者之间有什么区别呢?先看段代码:
代码1:
def fun():passprint(fun)
结果如下:
<function fun at 0x000000000248A820>
代码2:
class Demo():def fun1(self):pass@classmethoddef fun2(cls):pass@staticmethoddef fun3(self):passdemo = 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) |
---|---|
方便复用 | 不宜复用,容易出错 |
方便扩展 | 升级、扩展,都十分复杂 |
方便维护 | 不便维护 |
——————————
如有不足请留言指正
相互学习,共同进步
Python中类(class)与函数(function)的区别相关推荐
- 混淆概念详细解析:Python中类、对象、方法、函数和属性的区别和理解
混淆概念详细解析:Python中类.对象.方法.函数和属性的区别和理解 前言 一.类.对象.方法.函数和属性的区别和理解 二.一个类的简单案例和对各种概念的理解 三.总结 欢迎学习交流! 邮箱: z- ...
- python中递归函数的基例_详谈Python基础之内置函数和递归 Python递归和循环的区别...
Python 递归函数基例 2. 关于递归函数基例的说明,以下选项中错误的是 A 递归函数的基例决定所谓基例就是不需要递归就能求解的,一般来说是问题的最小规模下的解. 例如:斐波那契数列递归,f(n) ...
- Python核心:5. 容器类型和6.函数function
5. 容器类型 5.1 通用操作 5.1.1 数学运算符 运算符 说明 + 用于拼接两个容器 += 用原容器与右侧容器拼接,并重新绑定变量 * 重复生成容器元素 *= 用原容器生成重复元素, 并重新绑 ...
- python中remove函数是什么意思,python中pop函数和remove函数有什么区别
python中pop函数和remove函数有什么区别 发布时间:2020-12-10 09:36:18 来源:亿速云 阅读:80 作者:小新 小编给大家分享一下python中pop函数和remove函 ...
- python中类方法与实例方法的区别-Python实例方法、类方法、静态方法的区别与作用详解...
本文实例讲述了Python实例方法.类方法.静态方法的区别与作用.分享给大家供大家参考,具体如下: Python中至少有三种比较常见的方法类型,即实例方法,类方法.静态方法.它们是如何定义的呢?如何调 ...
- Python编程基础:第二十节 函数Function
第二十节 函数Function 前言 实践 前言 目前为止,我们已经学习了常见的数据类型以及逻辑结构.但是代码都只能运行一次,如果想多次运行该段代码就得重复写多次.为了避免书写冗余的代码,我们需要引入 ...
- Python 中各种imread函数的区别与联系
Python 中各种imread函数的区别与联系 最近一直在用python做图像处理相关的东西,被各种imread函数搞得很头疼,因此今天决定将这些imread总结一下,以免以后因此犯些愚蠢的错误.如 ...
- 数据库系列之mysql 自定义函数function,函数和存储过程的区别
mysql 自定义函数function,函数和存储过程的区别 https://blog.csdn.net/u010365819/article/details/80470448 https://blo ...
- Python eval 与 exec 函数的区别 - Python零基础入门教程
目录 一.Python eval 与 exec 函数的区别 二.价值 10 个亿的智能机器人核心代码 三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Py ...
- Python reduce / map / filter 函数区别 - Python零基础入门教程
目录 一.map 函数 二.reduce 函数 三.filter 函数 四.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 Pyth ...
最新文章
- linux的挂载命令
- 破一个行业ERP的感想
- eclipse 鲜为人知的调试技巧,你用过多少
- 【Paper】英文论文写作小技巧
- 让人惊叹的Johnson-Lindenstrauss引理:理论篇
- 赋值运算符 += 面试题小陷阱
- sensei鼠标测试软件,'黑科技'传感器打造出的FPS利器 - 赛睿Sensei 310 鼠标
- python split函数 空格_最易懂的Python新手教程:从基础语法到代码详解
- java基础方法笔记
- 前端集合删除对象_【两万字】面试官:听说你精通集合源码,接我二十个问题!...
- saltstack 自动化运维神器(四)salt-ssh
- JS获取IP、MAC和主机名的五种方法
- matlab中的全局参量,matlab参数传递及全局变量 | 学步园
- 金山也推隐私保护器,我的隐私谁做主?
- php里pluck,pluck - 内容管理CMS - PHP开源项目 - 开源吧
- PHP上传ZIP压缩包并解压
- Ubuntu20.04安装NVIDIA显卡驱动、CUDA、CUDNN及突破NVENC并发限制
- 台式计算机如何拆硬盘,机械硬盘怎么拆开?台式机3.5英寸机械硬盘拆卸方法图文教程...
- e.CommandArgument值的设定
- 孙陶然:成功者都不找借口
热门文章
- html5 红包页面,利用HTML5实现手机触屏接红包代码
- Ubuntu配置网卡信息(ip、网关、子网掩码、dns)
- 御银股份(002177)首次公开发行股票网上路演公告,核心观点询价结论:御银股份 快速扩张的ATM运营龙头
- 10月9日学习:urlopen报错处理
- Teradata当年数据仓库的“一哥”为何突然退出中国市场:苦撑了3年,员工早有预料
- 用TELNET连接Socket服务器程序
- 名画176 文徵明《画卷十幅》
- 推荐系统——(一)经典论文文献及业界应用
- layui-from
- 【LeetCode-面试算法经典-Java实现】【198-House Robber(抢劫犯)】