阿里云天池Python(三)

前言

第6-9天的课程:基本的Python基础, 不做详细罗列,这里只记录 知识体系重难点

星星

  • 困难度 ==> ★★★☆☆☆
  • 知识量 ==> ★★☆☆☆☆
  • 掌握度 ==> ★★★☆☆☆

知识体系

  • 函数
    • 函数的定义
    • 函数的调用
    • 函数文档
    • 函数参数
    • 函数的返回值
    • 变量作用域
  • Lambda 表达式
    • 匿名函数的定义
    • 匿名函数的应用
  • 类与对象
    • 对象 = 属性 + 方法
    • self 是什么?
    • Python 的魔法方法
    • 公有和私有
    • 继承
    • 组合
    • 类、类对象和实例对象
    • 什么是绑定?
    • 一些相关的内置函数(BIF)
  • 魔法方法
    • 基本的魔法方法
    • 算术运算符
    • 反算术运算符
    • 增量赋值运算符
    • 一元运算符
    • 属性访问
    • 描述符
    • 定制序列
    • 迭代器

重难点

函数

  1. 一切皆对象,函数也为对象。可作为参数和返回值传递。(又有 JS 内味了)
  2. 参数形态
  • 位置参数 (可相对位置传参, 可按参数名传参)
  • 默认参数 (参数预设默认值)
  • 可变参数[元组] (*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)

类&对象

  1. 继承写在括号里
  2. 构造/析构函数 ,self = this
1
2
3
4
5
6
7
8
__init__, __del__, __new__
issubclass()
isinstance()
hasattr()
setattr()
getattr()
delattr()
property() # 方便使用 class.property
  1. 魔术方法(相当于cpp的操作符重载???)/反运算符
  2. 迭代器/生成器/装饰器
  • iter()
  • next()
  • 要实现类的迭代,需要定义__iter__()和__next__()
  • yield 返回当前值并保护现场,下次运行到此处继续下一步
文章作者: Shengyaqingfeng
文章链接: https://creazyboyone.github.io/AliyunTianci03/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Shengyaqingfeng's Blog