pass 与接口

Python中最特别的关键字之一便是pass,它放在类或函数里,表示类和函数暂不定义。

class PassClass:    pass

def PassFun():    pass 

如上实现最精简的类和函数定义。

今天跟大家分享一个pass的特别有用的用法,尤其对Java语言的interfaceimplements等较熟悉的朋友,在Python中也能实现类似写法。

首先安装一个包:

pip install python-interface

下面是这个包的基本用法,首先创建一个接口类:

from interface import implements, Interface

class MyInterface(Interface):

    def method1(self, x):        pass

    def method2(self, x, y):        pass

下面实现接口:

class MyClass(implements(MyInterface)):

    def method1(self, x):        return x * 2

    def method2(self, x, y):        return x + y

这个包对熟悉Java语言的朋友还是非常实用,接口和实现类用法,可以平稳过渡到Python语言中。

return 和 yield

程序遇到 return 和 yield 都是立即中断返回。那么yieldreturn又有什么不同呢?

return不同,yield中断返回后,下一次迭代会进入到yield后面的下一行代码,而不像return下一次执行还是从函数体的第一句开始执行。

用图解释一下:

遇到yield中断返回

第一次 yield 返回 1


第二次迭代,直接到位置2这句代码。

然后再走for ,再yield,重复下去,直到for结束。

以上就是理解yield的重要一个点,当然yield还会与from 连用,还能与send实现协程等,这些都放在后面的专题。

短路原则

最后以一个有意思的短路问题结束流程控制专题。

布尔运算符 and 和 or 也被称为短路运算符:它们的参数从左至右解析,一旦可以确定结果解析就会停止。

Python中的短路运算符常见的有两个:and , or

A and B : 如果 A 不成立,B 不会执行

A or B : 如过 A 成立,B不会执行

所以被称为短路运算符

举几个例子一看就明白,请看下面代码:

代码1:

a = ''b = a and 'i will not execute'print(b)

打印结果为空,因为and运算符从左到右检查,一旦a为空即为假,则结果已确定为假,'i will not execute'被短路。

代码2:

a = 'python'b = a or 'i will not execute'print(b)

打印结果为:python,因为or运算符从左到右检查,一旦a为真则结果已确定为真,所以'i will not execute'被短路。

总结

本专题细致总结了流程控制的基础和进阶用法,具体包括以下:

  • 基础用法

    • 1 if 用法

    • 2 for 用法

    • 3 while,break,continue

  • 进阶用法

    • 4 for 使用注意

    • 5 range 序列

    • 6 Python特色:循环与else

    • 7 pass 与接口

    • 8 return 和 yield

    • 9 短路原则

  • 总结

《end》

break continue区别和用法_[分享]Python专题之流程控制(进阶用法2)相关推荐

  1. python if else格式_【Python基础】流程控制-if..else

    [Python基础]流程控制-if..else ''' 基本的使用 if 条件: 满足条件执行的代码 else: 不满足条件执行的代码 ''' # age = input("Please i ...

  2. python3 isinstance用法_对python中assert、isinstance的用法详解

    1. assert 函数说明: Assert statements are a convenient way to insert debugging assertions into a program ...

  3. python中result的用法_关于Python中的列表理解及用法

    在Python中,列表理解通常用于编写单行语句,这些语句通过可迭代对象进行迭代以创建新的列表或字典.本文首先介绍for循环如何在Python中工作,然后解释如何在Python中使用列表理解. Pyth ...

  4. python中if else语句用法_讲解Python中if语句的嵌套用法

    可能有这样一种情况,当你想检查其他条件后一个条件解析为真.在这种情况下,可以使用嵌套的if结构. 在嵌套的 if 语句结构,可以在一个 if... elif... else 结构里面可有另外一个 if ...

  5. 好好学python·运算符和流程控制

    运算符和流程控制 运算符类型 Python算术运算符 Python比较运算符 Python赋值运算符 Python位运算符 Python逻辑运算符 Python成员运算符 Python身份运算符 Py ...

  6. Python基础之:Python中的流程控制

    文章目录 简介 while语句 if 语句 for语句 Break Continue pass 简介 流程控制无非就是if else之类的控制语句,今天我们来看一下Python中的流程控制会有什么不太 ...

  7. python和控制流程_Python基础之:Python中的流程控制

    简介 流程控制无非就是if else之类的控制语句,今天我们来看一下Python中的流程控制会有什么不太一样的地方. while语句 python中的while语句和其他语言没有什么不一样,我使用wh ...

  8. Python实验1 流程控制

    Python实验1 流程控制 编写程序实现输入成绩,判断是否通过考试. 代码 grade = int(input("请输入成绩:")) if 60 <= grade < ...

  9. python数组用sum求和_对python中array.sum(axis=?)的用法介绍

    根据代码中运行的结果来看,主要由以下几种: 1. sum():将array中每个元素相加的结果 2. axis对应的是维度的相加. 比如: 1.axis=0时,对饮搞得是第一个维度元素的相加, [[0 ...

  10. python中content的用法_学python吗,教你5个python现学现用的有趣用法

    在我们使用python的过程中也会遇到一些有意思的用法,这里找到了一些总结有趣的 话不多说,接着看下去吧!!!!python高薪就业(视频.学习路线.免费获取)​shimo.im for-else用法 ...

最新文章

  1. 全局变量中断原子操作_原子操作原理分析
  2. 出错处理函数abort、exit、atexit、strerror
  3. vue-beauty 的v-data-table数据单元不换行
  4. python3异步协程爬虫_Python实现基于协程的异步爬虫
  5. 李飞飞:在物体识别之后,计算机视觉还要多久才能理解这个世界?
  6. 【java基础知识】判断字符串不为空
  7. TempTable临时表
  8. Navicat实用功能:数据备份与结构同步
  9. 蓝桥杯 2014本科C++ B组 李白打酒 三种实现方法 枚举/递归
  10. Linux 常用系统工具与初始化配置
  11. debian or ubuntu下 anjuta配置
  12. Vue 最黑暗的一天
  13. 随手写了一个鸡肋的二叉树
  14. Codeforces Round #469 (Div. 2) C. Zebras
  15. ROS实验笔记之——SLAM无人驾驶初入门
  16. 1024程序员节是怎么来的?为什么设置程序员节?
  17. 9 概率机器人 Probabilistic Robotics 二值贝叶斯滤波 占据栅格地图 occupancy grid mapping
  18. mmdetection特征可视化V2
  19. LDPC译码原理(公式推导)及其matlab代码实现(超详细)
  20. 06数据分析 - 预测性分析

热门文章

  1. Rational Rose和UML可视化建模基础
  2. Maven修改默认JDK
  3. 分治法解决最大子数组问题【 转载】
  4. Java 数据结构之双链表
  5. spring 监听器
  6. hdu 1059 (多重背包) Dividing
  7. Silverlight 5 强袭 !! 圣临王者之三端大一统
  8. 【阅读理解】机器阅读理解综述(一)
  9. TF2.0-tf.keras.callbacks.EarlyStopping
  10. torch -index_select()、Pytorch 之修改Tensor部分值、pytorch中Tensor的数据类型