零基础学 Python(2018 版)
尹会生
前游戏公司技术总监,前新浪网技术经理
80146 人已学习
新⼈⾸单¥68
课程目录
已完结/共 72 讲
第一章 :Python介绍和安装 (3讲)
第二章 :Python基础语法 (3讲)
第四章 :条件与循环 (5讲)
第五章 :映射与字典 (2讲)
第六章 :文件和输入输出 (2讲)
第七章 :错误和异常 (1讲)
第九章 :模块 (1讲)
第十章 :语法规范 (1讲)
第十一章 :面向对象编程 (4讲)
第十二章 :多线程编程 (2讲)
第十六章 :综合案例 & 结课测试 (1讲)
特别放送 (1讲)
零基础学 Python(2018 版)
登录|注册
留言
14
收藏
沉浸
阅读
分享
手机端
回顶部
当前播放: 35 | 类与实例
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.75x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
01 | Python语言的特点
02 | Python的发展历史与版本
03 | Python的安装
04 | Python程序的书写规则
05 | 基础数据类型
06 | 变量的定义和常用操作
07 | 序列的概念
08 | 字符串的定义和使用
09 | 字符串的常用操作
10 | 元组的定义和常用操作
11 | 列表的定义和常用操作
12 | 条件语句
13 | for循环
14 | while循环
15 | for循环语句中的if嵌套
16 | while循环语句中的if嵌套
17 | 字典的定义和常用操作
18 | 列表推导式与字典推导式
19 | 文件的内建函数
20 | 文件的常用操作
21 | 异常的检测和处理
22 | 函数的定义和常用操作
23 | 函数的可变长参数
24 | 函数的变量作用域
25 | 函数的迭代器与生成器
26 | Lambda表达式
27 | Python内建函数
28 | 闭包的定义
29 | 闭包的使用
30 | 装饰器的定义
31 | 装饰器的使用
32 | 自定义上下文管理器
33 | 模块的定义
34 | PEP8编码规范
35 | 类与实例
36 | 如何增加类的属性和方法
37 | 类的继承
38 | 类的使用-自定义with语句
39 | 多线程编程的定义
40 | 经典的生产者和消费者问题
41 | Python标准库的定义
42 | 正则表达式库re
43 | 正则表达式的元字符
44 | 正则表达式分组功能实例
45 | 正则表达式库函数match与search的区别
46 | 正则表达式库替换函数sub()的实例
47 | 日期与时间函数库
48 | 数学相关库
49 | 使用命令行对文件和文件夹操作
50 | 文件与目录操作库
51 | 机器学习的一般流程与NumPy安装
52 | NumPy的数组与数据类型
53 | NumPy数组和标量的计算
54 | NumPy数组的索引和切片
55 | pandas安装与Series结构
56 | Series的基本操作
57 | Dataframe的基本操作
58 | 层次化索引
59 | Matplotlib的安装与绘图
60 | 机器学习分类的原理
61 | Tensorflow的安装
62 | 根据特征值分类的模型和代码
63 | 网页数据的采集与urllib库
64 | 网页常见的两种请求方式get和post
65 | HTTP头部信息的模拟
66 | requests库的基本使用
67 | 结合正则表达式爬取图片链接
68 | Beautiful Soup的安装和使用
69 | 使用爬虫爬取新闻网站
70 | 使用爬虫爬取图片链接并下载图片
强势回归:零基础学Python2022版来啦!
71 | 如何分析源代码并设计合理的代码结构&结课测试
本节摘要

课程源码、课件及课后作业地址:

https://gitee.com/geektime-geekbang/geekbangpython

登录 后留言

全部留言(14)

  • 最新
  • 精选
Geek_b498b7
self.name = name self.hp = hp 老师我反复看了视频还是没搞懂这两行在干什么,能不能再具体解释一下

作者回复: 这里的self 是表示创建实例本身,self.name = name 相当于把外部的name的值赋给自己的属性self.name;对类做多次实例化之后,每次的self.name都表示“自己”的name属性,而不是“公共”的name

2019-09-16
4
5
硕杨Sxuya
self 里面的参数名字感觉会让新手费解,怎么就是 self.name=name 了呢?不就是这样的么?改成 self.name = tempName 或者 self.name = inputName,会更有区分度,对新手更友好。 现在学得有些懂了,但是越来越不明白,这些教程为什么参数的临时名字或者中间值就非得取和定义的名字一样的呢?这是外国人的思维,人家英文用多了,能区分,但是中国人看到 name = name 的语句,不会太明白两个 name 是不一样的内容,就不能改成中国人的思路的表达么?这可是教学呀,为什么非得弄得这么让新手不清不楚。 --- 米饭的举例感觉分奇怪,如果更好一点,感觉可以是“炒饭是炒出来的米”、“白米饭是蒸出来的米”、“盖浇饭是浇了汁的米”。。。。。。都是米做出来的菜肴,都需要加热变成熟的状态的才要,但是使用的烹饪方法是不一样。 --- 第一个参数一定是 self,不能缺少。(是为了进行指代么?所有都要有,为什么不能省略呢?这样不就优雅一些么?改了一下代码,把所有的self去掉,也就是不指代了,也还是不行,应该是按照搜索到回答:编译器里面这么设定了,不能随意更改),(但是这个 self 是可以改成其他的,比如都改成 it,也是没有问题的,但是 PEP8 的规定,大家都用 self)

作者回复: 这里记得不是编译器决定的self,是习惯。建议在stackoverflow或google搜索,很多中文的解释不正确

2018-09-29
3
Mr.C
Self 相当于 java的this吗?

作者回复: 没错,都是指对象自身

2018-12-06
2
硕杨Sxuya
编程语言的编译器,应该就是类似将面向对象的书写,翻译整理成面向过程的语言吧(待求证)

作者回复: 不正确,编译器原指c/c++语言这类编译执行的程序,通过编译器将源代码转换为机器语言,通过链接器之后形成的二进制文件用于执行。 python是解释语言,不需要编译可以逐条执行,但考虑到效率问题,我们一般把python源代码通过cpython编译为pyc格式的字节码,提高执行效率,也在一定程度上防止反编译还能保护源代码。更多编译器请搜索 编译器及其工作原理

2018-09-29
2
王潼
老师 我碰到个问题不知道怎么解决,网上也找不到类似的情况 前提:就是用python+selenium写脚本,2个py文件,1个是登录,里面一个登录类,好几个函数(选租户,选产品等函数);1个是具体产品的操作(增删改查);然后在第三个py文件写具体的执行内容 步骤:①在第三个自定义py文件中导入登录的类 ②实例化对象后,用对象.函数实现我想要执行的函数 问题:在这个自定义文件中导入登录类就会把登录里所有的函数执行一遍,这不是我想要的,但是在__init__文件里面却不会这样,可以达到我想要的写的哪些函数,就只执行哪些函数,要怎么解决这种问题呀,执行代码如下: from cases.login.test_login import TestLogin from cases.log.test_log import Test_log if __name__ == '__main__': login = TestLogin() login.setup_class() login.test_login() login.test_group() login.test_safety() login.test_project() log = Test_log(login) log.test_module_log() log.test_insert_log() log.test_edit_log() log.test_select_log() log.test_repeat_insert_log() log.teardown_class()

作者回复: 给 test_login 和 TestLogin 改个名字就好了 默认情况下导入库或者包,不会执行其中的类和方法的,你用了test前缀应该是误了某些单元测试的包,导致了这样的结果

2021-10-13
青桐树
老师,请问这样拼写后,会报错 name error,是什么原因呢 class Player(): def __init__(self, name, hp): self.name = name self.hp = hp # 定义一个方法 def print_role(self): print('%s:%s' % (self.name, self.hp)) # 类的实例化 user1 = Player('tom', 100) user2 = Player('jerry', 90) user1.print_role() user2.print_role() Traceback (most recent call last): File "C:/Users/admin/PycharmProjects/Practic/class_test.py", line 13, in <module> class Player(): File "C:/Users/admin/PycharmProjects/Practic/class_test.py", line 23, in Player user1 = Player('tom', 100) NameError: name 'Player' is not defined

作者回复: 缩进的问题?

2019-11-04
2
北极的大企鹅
class Player: def __init__(self, name, hp): self.name = name self.hp = hp def print_describe(self): print('name is %s ,hp is %s' % (self.name, self.hp)) user1 = Player('tom', 100) user2 = Player('jerry', 100) user1.print_describe() user2.print_describe() class Player: 后边没让用(),这是为什么

作者回复: 可以写(object), 也可以写(其他类)表示继承自某个类;可以参考经典类和新式类的区别

2019-06-24
Airsaid
老师您好,按照您这节课中关于类的定义:「class 类名(): 」后,ide 会提示:「Python Remove redundant parenthesesa」。那么这个括号是否应该添加呢?

作者回复: 您好,类如果继承自指定的父类必须使用 类名称(父类)的形式,即括号和内容必须书写; 如果没有指定父类默认会继承object类,以下三种写法均不构成语法错误,类名不带括号,类名带空括号,类名(object),为语法整洁建议去掉空括号。

2018-07-15
最靓的仔
class Player():#定义一个类,名字第一个字母大写开头,self是实例化本身 def __int__(self, name, hp): self.name = name self.hp = hp def print_role(self):#定义一个方法 print('%s: %s' %(self.name, self.hp)) user1 = Player('tom',100)#类的实例化 user2 = Player('jerry',90) user1.print_role() 几乎跟老师是一毛一样的,可是报错了
2022-09-26
1
Sick Boy
这个self有点像js的this,不过js中定义class 用的constructor来进行实例而python好像不是的
2022-05-03
收起评论