学习目录阿力阿哩哩:深度学习 | 学习目录​zhuanlan.zhihu.com

上一期我们讲到阿力阿哩哩:Python进阶学习​zhuanlan.zhihu.com

3.4 Python高阶学习

3.4.1 面向过程编程

定义方法指令:def

面向过程编程是通过定义一个又一个的方法去确定的,在数学上我们更倾向于将方法称作函数。这么做的目的是为了将一个大的任务拆成一个又一个小任务去实现,然后用搭积木似的操作去组装,从而完成任务。我们可以将积木看做方法,这些方法都是我们实现的,将一个又一个的积木组装成自己想要的形状,就是完成任务的过程。

1. 有返回值,无参数

1. # /chapter3/3_4_Basis_high_ranking.ipynb

2. def print_value():

3. return 1

4. print_value() # 调用函数

1

2. 无返回值,无参数

1. def print_value():

2. print('Chile')

3. print_value() # 调用函数

Chile

3. 无返回值,有参数

1. def print_value(a, b):

2. if a > b:

3. print('a > b')

4. elif a < b:

5. print('a < b')

6. else:

7. print('a == b')

8.

9. # 三种调用方式

10. print_value(1, 2) # 调用函数

11.

12. a = 1

13. b = 2

14. print_value(a, b) # 调用函数

15.

16. print_value(a=1, b=2) # 调用函数

a < b

a < b

a < b

4.有返回值,有参数

1. def print_value(a_test, b_test):

2. if a > b:

3. return 'a > b'

4. elif a < b:

5. return 'a < b'

6. else:

7. return 'a == b'

8.

9. # 三种调用方式

10. print(print_value(1, 2)) # 调用函数

11.

12. a = 1

13. b = 2

14. print(print_value(a, b)) # 调用函数

15.

16. print(print_value(a_test=1, b_test=2)) # 调用函数

a < b

a < b

a < b

3.4.2 面向对象编程

面向对象有两个概念:类(Class)和实例(Instance),类是抽象的模板,例如Phone类,而实例是根据类创建出来的一个个具体的“对象”例如huawei和iphone等,每个实例的对象都拥有相同的方法,但各自的数据可能不同。

每一个方法第一个参数永远是self。

类的三大特性:封装、继承与多态。

1.封装

将属性和方法封装进类,每一个对象的属性和方法是一样的,类似模板,但数据不一样,类似我们将自己的内容输入模板。

1. class Phone(object):

2. # 内置的方法,用来绑定类的属性

3. def __init__(self, name, price):

4. # 属性

5. self.name = name

6. self.price = price

7.

8. # 方法

9. def print_price(self):

10. print(self.price)

11. def assistant(self):

12. print('I have an assistant!')

2. 实例化对象

1. iphone = Phone('iphone', 5200)

2. huawei = Phone(name='huawei', price=8888)

3. print(iphone.price) # 查看实例属性

4. huawei.print_price() # 调用实例函数

5200

8888

3. 继承

就是传统意义上的意思,继承父辈已有的东西,然后在自己身上开发父辈没有的东西。

1. class Iphone(Phone):

2. def operation_system(self):

3. return 'ios'

4. iphone = Iphone('iphone', '5200')

5. print(iphone.operation_system())

ios

4. 多态

如果从父辈继承的方法不适合,子类会重写一个适合自己的同名方法,覆盖从父辈那继承的已有的方法。即在运行子类的实例时,总是优先运行子类的代码。所以多态也叫多样性。

1. class Iphone(Phone):

2. def assistant(self):

3. print('I have siri assistant!')

4.

5. class Huawei(Phone):

6. def assistant(self):

7. print('I have hormony assistant!')

8. iphone = Iphone('iphone', 5200)

9. huawei = Huawei(name='huawei', price=8888)

10. iphone.assistant()

11. huawei.assistant()

I have siri assistant!

I have hormony assistant!

1. def get_assistant(Phone):

2. Phone.assistant()

3. get_assistant(Phone('phone', 500))

4. get_assistant(Iphone('iphone', 5200))

5. get_assistant(Huawei('huawei', 8888))

I have an assistant!

I have siri assistant!

I have hormony assistant!

3.4.3 面向过程与面向对象的区别

面向过程的程序设计是以过程为中心,将问题分解成一个个小问题,然后用一个个函数将这些小问题按照步骤去解决,即把大函数切成小函数,从而降低问题的复杂度。而面向对象的程序设计是以对象为中心,将事物高度抽象化成模型,然后使用模型实例化出一个个对象,通过对象之间的通信来解决问题。

当然,不管是面向过程还是面向对象编程,本质上都是为了简化代码,提高代码复用率,只不过面向对象更加抽象罢了。越抽象的东西,通用性越高,当然也就意味着复用性越好。

下一期,我们将介绍

正则表达式

敬请期待~

关注我的微信公众号【阿力阿哩哩的炼丹日常】~不定期更新相关专业知识~

喜欢就点个赞吧~

python高阶_Python高阶学习相关推荐

  1. python绝对值编程_Python高阶函数

    高阶函数英文叫Higher-order function. 什么是高阶函数? 我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数abs()为例,调用该函数用 ...

  2. python异步高并发_python高并发异步服务器核心库forkcore使用方法

    1 拷贝下面的代码到一个文件,并命名为forkcore.py import os import threading import select import socket class ds_forkc ...

  3. python常用代码_Python常用算法学习(3)(原理+代码)——最全总结

    1,什么是算法的时间和空间复杂度 算法(Algorithm)是指用来操作数据,解决程序问题的一组方法,对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但是在过程中消耗的资源和时间却会有很大 ...

  4. python引流_Python为什么值得学习?(下)

    「我能用Python做什么事呢?」「Python为什么这么红?」 关于这些问题,上次已经谈过一些,还没看过上篇的朋友请笑纳- 「我能用Python做什么事呢?」「Python为什么这么红?」 相信这些 ...

  5. python常用代码_Python常用算法学习(4) 数据结构(原理+代码)-最全总结

    数据结构简介 1,数据结构 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成.简单来说,数据结构就是设计数据以何种方式组织并存贮在计算机中.比如:列表,集合与字 ...

  6. 学习python装饰器_Python装饰器学习(九步入门)

    这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 # -*- coding:gbk -*- '''示例1: 最简单的函数,表示调用了两次 ...

  7. python编程语言继承_python应用:学习笔记(Python继承)

    学习笔记(Python继承)Python是一种解释型脚本语言,可以应用于以下领域: web 和 Internet开发 科学计算和统计 人工智能 教育 桌面界面开发 后端开发 网络爬虫 有几种叫法(父类 ...

  8. python 列表 换行_python基础语法学习——参考Python Crash Course

    第一章:python在各个系统之间的安装和使用(略) 第二章: 变量 2.1.每个变量都存储了一个值 --与变量相关联的信息.在程序中可随时修改变量的值,而 Python将始终记录变量的最新值. 2. ...

  9. python socket服务器_python网络编程学习笔记(三):socket网络服务器

    1.TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个过程需要四步,具体见下面的比较.步骤 TCP客户端 TCP服务器 第一步 建立socket对象 建立socket对象 ...

最新文章

  1. python excel web_使用python在WEB页面上生成EXCEL文件
  2. synchronized 与 Reentrant均为可重入锁 区别后者比前者增加了长时等待可中断 设置是否公平锁 绑定多个条件
  3. 九、非主体机构元素——header元素、footer元素、address元素、网页编排
  4. 拓扑排序--关键路径
  5. Python 文件和目录操作总结
  6. BCrypt加密怎么存入数据库_第6天 密码加密与微服务鉴权JWT(下)
  7. linux指向日志服务器
  8. Linux常用命令介绍(二)——压缩与解压缩命令
  9. c语言上机字符串,二级C语言上机题库100套(最新)
  10. 机器人操作系统ROS浅析
  11. iconfont矢量图标库的引用方法
  12. 解决python在linux上导包出现no module named ...的问题
  13. Docker容器dockerfile简介
  14. html自动幻灯片代码,简单常用的幻灯片播放实现代码
  15. 合肥有哪些不错的 IT 公司?
  16. 利用QuickCHM制作chm
  17. 用 Python 做股市数据分析(2)
  18. 万元大奖和Switch等你来拿,百度飞桨AI创造营带你出道
  19. iPhone手机屏幕尺寸详细表格、A10和A11处理器介绍
  20. SAP中的外币评估记账与正常记账有何区别?

热门文章

  1. 壁纸网站的高清图片,完美符合视觉控的你!
  2. UI设计字体素材|设计中字母间距指南
  3. java qq在线客服,Java获得腾讯QQ在线状态(.net webservice) | 学步园
  4. 不同型号的二极管模块并联_电阻可以串联,为何二极管不适合串联?
  5. mysql 停数据库_mysql数据库突然停了
  6. qt实现对话框选择文件路径并保存(简易版)
  7. Build the initrd image
  8. ELF文件的签名与验证
  9. ATK插件化开发:AtkPlug,AtkSocket
  10. 抖音api开放平台对接_抖音新增酒店预订等功能,一只脚踏进美团、携程腹地