前言
第6-9天的课程:基本的Python基础, 不做详细罗列,这里只记录
知识体系
和重难点
。
星星
- 困难度 ==> ★★★☆☆☆
- 知识量 ==> ★★☆☆☆☆
- 掌握度 ==> ★★★☆☆☆
知识体系
- 函数
- 函数的定义
- 函数的调用
- 函数文档
- 函数参数
- 函数的返回值
- 变量作用域
- Lambda 表达式
- 匿名函数的定义
- 匿名函数的应用
- 类与对象
- 对象 = 属性 + 方法
- self 是什么?
- Python 的魔法方法
- 公有和私有
- 继承
- 组合
- 类、类对象和实例对象
- 什么是绑定?
- 一些相关的内置函数(BIF)
- 魔法方法
- 基本的魔法方法
- 算术运算符
- 反算术运算符
- 增量赋值运算符
- 一元运算符
- 属性访问
- 描述符
- 定制序列
- 迭代器
重难点
函数
- 一切皆对象,函数也为对象。可作为参数和返回值传递。(又有
JS
内味了) - 参数形态
- 位置参数 (可相对位置传参, 可按参数名传参)
- 默认参数 (参数预设默认值)
- 可变参数[元组] (*args 保存可变参数)
- 关键字参数[字典] (传参时指定名称的参数, 参数名匹配除外)
- 命名关键字参数 (只能按参数名传参)
1
2# nkw 只能按参数名传参否则报错
def printinfo(arg1, *, nkw, **kwargs): - 参数组合:5种参数中的4个都可以一起使用,但是注意,参数定义的顺序必须是:
- 位置参数 - 默认参数 - 可变参数 - 关键字参数
- 位置参数 - 默认参数 - 命名关键字参数 - 关键字参数
- 内嵌函数,闭包(返回值是函数)
- lambda
1
2
3
4
5
6
7
8# 普通
def sqr(x):
return x ** 2
# lambda
lambda argument_list: expression
# 例子
lbd_sqr = lambda x: x ** 2
func = lambda *args: sum(args)
类&对象
- 继承写在括号里
- 构造/析构函数 ,self = this
1 | __init__, __del__, __new__ |
- 魔术方法(相当于cpp的操作符重载???)/反运算符
- 迭代器/生成器/装饰器
- iter()
- next()
- 要实现类的迭代,需要定义__iter__()和__next__()
- yield 返回当前值并保护现场,下次运行到此处继续下一步