| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Python 面向对象编程菜鸟实现版 -> 正文阅读 |
|
[Python知识库]Python 面向对象编程菜鸟实现版 |
《微信背后的产品观》里,微信之父张小龙说:
所以,除了新生代农民工里的搬砖崽,了解一下面向对象这个概念是百利无一害的。 什么是面向对象编程?程序设计思想有面向对象(Object Oriented)和面向过程(Procedure Oriented)两大类。 面向过程是一次性的事,面向对象是关于某个主体有一堆过程的实现。比如,对于历史的描述,面向过程更像是编年体、发生一次动作就重新叙述一遍,而面向对象就像是纪传体,围绕人来展开历史故事的叙述。 那么,Python 这门编程语言又是怎么体现面向对象的呢?Python 面向对象包括封装、继承和多态这三个特性。 封装是把每个对象有关的行为封装在一个模块中; 继承是说对象2在对象1的特点基础上有延续和扩展; 多态是指,对象1和对象3在同一个动作命令下有不同的实现和处理方式。 Python可以很好的支持面向对象编程。也就是说,你可以把某个对象的一些操作封装在一个类里。通过对类的调用、继承和改写,来实现程序的复用。 下面我们来看一个非常简单的例子,有一家公司叫 “小匚科技”,员工只有三个人:甲、乙、丙。 然后我希望这个公司的每个人都有两个基础属性,一个是工号,一个是姓名,于是可以这样定义: ?????? 接着来调用,需要传入参数,姓名和工号。???????
然后我们就可以对 stuff1、2、3后面加“.属性名”,来查询初始化属性。 在定义类的属性时,属性前面加两个下划线,表示私有属性,只能通过类里面的方法来返回,如: 公司员工刚入职,可能只有姓名和工号的属性,但是一定还有其他动作。 定义一下,公司所有人都是正常放双休的。不同的员工,在周末做的事情不一样。可以在类的基础上,继续扩展。 此时,父类,也就是最前面定义这个?CodeStuff类,新增了?workday_act,?weekend_act?两个动作。 大家平时好好上班,周末好好休息。 接着,我们定义 小匚科技 不同职责的员工的动作:
定义好后,调用一下看看: 和没有具体身份的员工来做一个对比: 开发人员没有定义工作日的动作,只定义了周末的,因此工作日的行为和父类一样: 这三个员工,我们都调用了同样的方法名,但是由于大家根据职位对方法进行了改写,所以,输出结果也有所不同。这就体现了多态。 希望本文能帮你建立"面向对象"的初步认知。不知道你看完以后有没有觉得不过如此,非常想动手试一下?但是又苦于之前从没接触过“编辑器”、“环境变量”这些概念。 不要急,请接着看。 在网页跑代码我在这免费分享给大家一个不用配置复杂的安装环境、就可以跑 Python 代码的方法。 可以去找在线的数据比赛,只需要注册一个账号,就可以去比赛网站上提供的代码练习的地方来跑代码。 优点: 1 云同步:随时随地,同步在个人账号,一般也是云保存的,不用担心丢失和文件存储混乱而找不到; 2 版本隔离:在跑神经网络时,可能会遇到很多第三方库的版本不兼容问题(想要跑一下网上现有的代码的时候,会出现 TensorFlow1.0版本必须要卸载掉原有的numpy13.0,keras 又需要tensor2.3.0版本及以上)。在线上实验室,你就可以随意去折腾各种版本的包,不用担心搞乱的本地的(非要本地跑,推荐构造多个虚拟环境); 3 见贤思齐:更方便的 Fork(复制)网上优秀的代码来做模仿练习和调试。 缺点: 读取文件比较繁琐、偶尔会卡。 如果在Google Colab,每次要读取文件,都需要通过以下代码进行附件的上传:???????
放下手机,拿起电脑,敲起好听的键盘声吧~ 参考链接如下:1 面向对象编程:https://www.liaoxuefeng.com/wiki/1016959663602400/1017495723838528 https://www.runoob.com/python/python-object.html 2 Colab链接: https://colab.research.google.com/【手写字项目教学https://codelabs.developers.google.com/codelabs/cloud-tensorflow-mnist#1】 3 阿里天池实验室:https://tianchi.aliyun.com/notebook-ai/?spm=5176.12281949.J_9711814210.11.529324489Kp1XX ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 12:27:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |