Skip to content

Latest commit

 

History

History
382 lines (261 loc) · 8.39 KB

077-192220-列表_列表项的追加_append.sy.md

File metadata and controls

382 lines (261 loc) · 8.39 KB
show version enable_checker
step
1.0
true

列表 - 类型

回忆

  • 上次理解了
    • 类 与 对象
  • 类 class
    • 是 抽象的类型
  • 具体的变量
    • 是 某个类的
      • 实例对象
      • instance object

图片描述

  • l 是列表类的实例对象
    • 可以向l中追加列表项吗?

l.append

  • l 就是
    • list列表对象
  • l. 指的是是
    • l所包含的
  • l. 之后摁下tab
    • 就是 将l下面所包含的成员函数提示出来

图片描述

  • 第一个就是append

追加

  • l.append 是
    • list列表类的
      • 实例对象l的
        • append成员函数

图片描述

  • 这个功能比较明确
    • 但是
  • 疑问三联
    • 什么是列表类 (class list)?
    • 什么是实例对象 l?
    • 什么是append成员方法?
  • 一个个来!

类 方法

图片描述

  • 具体动手试试

列表赋值

  • 在中括号里面放上字符串
    • 然后用逗号隔开
    • 形成了名单列表

图片描述

  • 这个名单列表 name_list
    • 就是列表类的 一个实例对象
    • Instance Object
  • 那这个 名单可以追加吗?

具体应用

  • name_list.append("o4z")

图片描述

  • 可以给名单 追加 人名
  • 这怎么理解呢?

帮助细节

  • help(list.append)
    • 有两个参数
      • self
      • object

图片描述

  • 这个 self 是什么意思呢?
  • python3 的官方文档怎么说呢?

官方文档

图片描述

  • self通常用来当做
    • 成员方法的 第一个参数
  • 一个成员方法定义为
    • method(self, a, b, c)
  • 这说起来有点抽象
    • 我们来看具体代码

name_list

  • name_list 是
    • list类 的 实例对象(instance object)

图片描述

  • append 方法就是
    • list类的成员方法

图片描述

  • append可以
    • 为 当前 list列表类的
    • 对象name_list
    • 追加元素
  • self 指的是谁呢?

self

  • self 就是自己
  • 谁自己?
    • 对象自己
  • 哪个对象自己?
    • 哪个调用 append 函数
      • 就是哪个对象自己

图片描述

  • 作为我们的这个例子来说
  • 哪个调用 append?
    • 就是 name_list
  • name_list.append("o4z")
    • self 就是 name_list
    • 意思是 为name_list 追加列表项
  • name_list 和 append 之间的
    • 这个(.)点 怎么理解呢?

成员方法

  • list 是一个类
  • 里面的方法都是这个类的成员方法
    • 成员方法的第一个参数是 self
    • 谁调用的方法
    • self指的就是谁
  • self 指的
    • 其实就是
    • 调用对象 自己

图片描述

  • 这个.(点)
    • 指的就是 里面的
  • name_list.append
    • 指的是name_list调用
      • 里面的append方法
  • 很像以前的随机方法

随机方法

图片描述

  • random模块中有一个Random类

图片描述

  • random.randint其实是
    • random 里面的
      • 成员(member)方法(method)
      • randint

图片描述

具体调用

  • 这方法(method) 和 内建函数(function)
    • 很像啊
    • 都有括号和参数

图片描述

  • 有什么不同吗?

不同

  • print函数
    • 没有self作为第一个参数的

图片描述

  • 这怎么理解呢?

函数

  • print 自己就能直接用
    • 不需要被什么所有者进行调用
  • input也没有
    • self参数
  • 这说明什么呢?

图片描述

  • 其实看看前面都有一个定语
    • built-in
      • 内建的
  • 这些个函数不属于任何的类和对象
    • 直接建立在 python 解释器的基础上
      • 既不属于任何的类
      • 也不属于任何对象

图片描述

函数和方法的区别

图片描述

  • 这个open 是 方法还是函数呢?

区分

  • open 就是
    • 内建的 built-in 的函数(function)
    • 不需要任何类或者对象来调用
    • 直接写就行

图片描述

  • append 就是
    • list 类 中的成员方法(method)
    • append 方法 的作用是追加元素
  • append 方法 前面必须得有对象吗?

尝试

图片描述

  • append
    • 就需要l进行调用
    • 是成员方法

具体的橘子

  • 具体的橘子
    • 是橘子类(orange class)的
      • 一个实例对象
      • 橘子甲

图片描述

  • 另一个具体的橘子
    • 也是橘子类(orange class)的
      • 一个实例对象 橘子乙
      • instance object
  • 橘子甲可以调用自己的成员方法
    • 橘子甲.剥皮()
    • 橘子甲.烤熟()
  • 橘子乙可以调用自己的成员方法
    • 橘子乙.榨汁()
    • 橘子乙.切开()

列表类

  • l是列表类的
    • 实例对象
    • instance object

图片描述

  • list 是一个类(class)
    • 这列表类 后面帮助 什么样 呢?

图片描述

  • 帮助说以下的都是方法(method)

成员方法

  • 刚才使用的append
    • 就是list列表类的 成员方法
  • 用法类似于函数
    • 但属于是类的方法
    • 所以也叫成员方法
  • 作用是在列表尾部追加元素

图片描述

  • 两个参数
    • 第一个是对象实例自身
    • 第二个是被追加的元素
  • 可以在list类的帮助里面
    • 找到append的帮助吗?

帮助手册

  • help(list) 或者 help([])
    • /append
    • 在帮助中查找append

图片描述

  • 可以直接找到append的帮助吗?

直接找到

help(list.append)
  • 查询结果

图片描述

  • 可以根据list的对象来查方法的帮助吗?

尝试

help(l.append)
  • 都可以找到append的帮助手册
  • 但这种情况是没有self的
  • 因为self已经明确为l了

图片描述

pythontutor

图片描述

  • l追加元素之后
    • 还是l吗?

观察id

图片描述

  • l在append前后

    • 所指向的地址(id)没有变过
    • l还是原来的l
  • 如何从词源上

    • 理解append呢?

append 词源

  • append 来自于
    • pend 悬挂

图片描述

  • append 附加
    • 这里指 在尾部
      • 附加 一个元素

总结

  • 这次了解了 list 列表的操作
    • 追加列表项 append
    • 在列表的结尾处追加元素

图片描述

  • append函数后面
    • 这个clear函数怎么用呢??🤔
  • 下次再说 👋