show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
- 上次理解了
- 类 与 对象
- 类 class
- 是 抽象的类型
- 具体的变量
- 是 某个类的
- 实例对象
- instance object
- 是 某个类的
- l 是列表类的实例对象
- 可以向l中追加列表项吗?
- l 就是
- list列表对象
- l. 指的是是
- l所包含的
- l. 之后摁下tab
- 就是 将l下面所包含的成员函数提示出来
- 第一个就是append
- l.append 是
- list列表类的
- 实例对象l的
- append成员函数
- 实例对象l的
- list列表类的
- 这个功能比较明确
- 但是
- 疑问三联
- 什么是列表类 (class list)?
- 什么是实例对象 l?
- 什么是append成员方法?
- 一个个来!
- 具体动手试试
- 在中括号里面放上字符串
- 然后用逗号隔开
- 形成了名单列表
- 这个名单列表 name_list
- 就是列表类的 一个实例对象
- Instance Object
- 那这个 名单可以追加吗?
- name_list.append("o4z")
- 可以给名单 追加 人名
- 这怎么理解呢?
- help(list.append)
- 有两个参数
- self
- object
- 有两个参数
- 这个 self 是什么意思呢?
- python3 的官方文档怎么说呢?
- https://docs.python.org/3/faq/programming.html#what-is-self
- self 只不过是成员方法(member method)里面
- 一个常用的名字
- self通常用来当做
- 成员方法的 第一个参数
- 一个成员方法定义为
- method(self, a, b, c)
- 这说起来有点抽象
- 我们来看具体代码
- name_list 是
- list类 的 实例对象(instance object)
- append 方法就是
- list类的成员方法
- append可以
- 为 当前 list列表类的
- 对象name_list
- 追加元素
- self 指的是谁呢?
- self 就是自己
- 谁自己?
- 对象自己
- 哪个对象自己?
- 哪个调用 append 函数
- 就是哪个对象自己
- 哪个调用 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方法
- 他
- 指的是name_list调用
- 很像以前的随机方法
- random模块中有一个Random类
- random.randint其实是
- random 里面的
- 成员(member)方法(method)
- randint
- random 里面的
- 这方法(method) 和 内建函数(function)
- 很像啊
- 都有括号和参数
- 有什么不同吗?
- print函数
- 是
没有
self作为第一个参数的
- 是
- 这怎么理解呢?
- print 自己就能直接用
- 不需要被什么所有者进行调用
- input也没有
- self参数
- 这说明什么呢?
- 其实看看前面都有一个定语
- built-in
- 内建的
- built-in
- 这些个函数不属于任何的类和对象
- 直接建立在 python 解释器的基础上
- 既不属于任何的类
- 也不属于任何对象
- 直接建立在 python 解释器的基础上
- 这个open 是 方法还是函数呢?
- open 就是
- 内建的 built-in 的函数(function)
- 不需要任何类或者对象来调用
- 直接写就行
- append 就是
- list 类 中的成员方法(method)
- append 方法 的作用是追加元素
- append 方法 前面必须得有对象吗?
- append
- 就需要l进行调用
- 是成员方法
- 具体的橘子
- 是橘子类(orange class)的
- 一个实例对象
- 橘子甲
- 是橘子类(orange class)的
- 另一个具体的橘子
- 也是橘子类(orange class)的
- 一个实例对象 橘子乙
- instance object
- 也是橘子类(orange class)的
- 橘子甲可以调用自己的成员方法
- 橘子甲.剥皮()
- 橘子甲.烤熟()
- 橘子乙可以调用自己的成员方法
- 橘子乙.榨汁()
- 橘子乙.切开()
- 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了
- l追加元素之后
- 还是l吗?
-
l在append前后
- 所指向的地址(id)没有变过
- l还是原来的l
-
如何从词源上
- 理解append呢?
- append 来自于
- pend 悬挂
- append 附加
- 这里指 在尾部
- 附加 一个元素
- 这里指 在尾部
- 这次了解了 list 列表的操作
- 追加列表项 append
- 在列表的结尾处追加元素
- append函数后面
- 这个clear函数怎么用呢??🤔
- 下次再说 👋