生成器引入在Python中,使用生成器可以很方便的支持迭代器协议。生成器通过生成器函数产生,生成器函数可以通过常规的def语句来定义,但是不用return返回,而是用yield一次返回一个结果,在每个结果之间挂起和继续它们的状态,来自动实现迭代协议。
也就是说,yield是一个语法糖,内部实现支持了迭代器协议,同时yield内部是一个状态机,维护着挂起和继续的状态。
12345678910d...
迭代器引入如果开发中有以下需求,如何解决?
123456789101112131415161718192021222324252627282930313233343536373839class StuSystem(object): """ 学生管理系统 """ def __init__(self): ...
异常处理什么是异常本节开始介绍之前,先看看如下程序:
12345>>> print(a)Traceback (most recent call last): File "<stdin>", line 1, in <module>NameError: name 'a' is not defined>>...
11. 进阶面向对象 - 311.1 super 方法引入上一节课程我们知道,如果父类中的方法在派生的子类中不能满足其需求的话,可以在子类中通过重写解决这个问题
但是很多情况下,父类中的方法并不是全部一点都不能用,即子类的需求往往是在父类方法实现的功能基础上提出了更多的需求而已,此时如果我们在子类中重写此方法时就会发现出现了很多冗余的代码,这个问题该怎么解决呢?
答:在子类重写的方法中通过调...
10. 深入面向对象 - 210.1 隐藏数据引入1234567891011121314151617class Cat(object): def __init__(self, new_name, new_age): self.name = new_name self.age = new_age def print_info(self): ...
9. 初识面向对象 - 19.1 引入面向对象本节将通过一个案例,先用之前我们编写的代码方式进行实现,然后分析利弊。从而引出面向对象。
需求编写一个程序,完成1个学生的基本操作
学生有姓名、年龄
可以输出学生信息( 姓名、年龄)
使用面向过程的方式实现123456789101112# 遍历打印所有姓名-年龄def print_info(names_temp, ages_temp): ...
8. 函数进阶 - 28.1 函数参数的高级用法缺省参数引入缺省参数也叫做默认参数,是指定义函数时形参变量有默认值,如果调用函数时没有传递参数,那么函数就用默认值,如果传递了参数就用传递的那个数据。
示例:
123456def print_info(name, age=35): print(f'name: {name}') print(f&...
7. 函数基础 - 17.1 什么是函数函数:一个功能独立的代码块
示例:
12345# 定义一个函数,能够完成打印信息的功能def print_info(): print('------------------------------------') print(' 人生苦短,我用Python ') ...
6. 容器类型 - 36.1 字典引入场景一:
声明一个列表
1nameList = ['张三', '李四', '王五']
如果发现 "李四" 这个名字写错了,通过下标修改
1nameList[1] = '赵六'
但是如果列表元素的顺序发生了变化,如下列代码
1nameList = [...
5. 容器类型 - 25.1 元组什么是元组元组是存储多个数据的一种方式
元组与列表类似,不同之处在于元组的元素不能修改
元组使用小括号(),列表使用方括号[]
123>>> aTuple = ('et',77,99.9)>>> aTuple('et',77,99.9)
元组的使用
访问元组
12345678...