为什么有一些 Python 入门书不教 class, yield, self 之类的方法?

96 天前
 zqm840527
我是个编程纯小白,在自学 Python 。选的入门书是《 Python 编程快速上手——让繁琐工作自动化》。这本书在众多的 Python 自学建议里都被提及,豆瓣评分也不错。但我发现,看不少视频教程,或者其他人的代码里,经常看到 class ,yield ,self ,__init__之类的方法(我也不知道该管他们叫什么,暂且统称方法吧),但是在《 Python 编程快速上手——让繁琐工作自动化》里似乎完全没有提及。我大致看了一下这几个方法的教程和视频,发现确实看不懂。我有几个问题:

1 、请问为什么这么受好评的入门书里面不教这几个方法?

2 、如果我不学这几个方法,未来会遇到什么问题?是否只是代码会写得繁琐一点,但还是能绕过去?(我学 Python 不是为了就业当程序员,只是为了提高工作效率)

3 、可否用踢足球或者开汽车来类比一下这些方法?是否这些方法是类似于倒钩射门或者甩尾漂移?普通人一辈子都不会用到,不学无妨?还是说相当于 40 米远射?我射不了那么远,但可以麻烦一点多传几脚到禁区内再射门?

请大神们指点迷津。
6037 次点击
所在节点    程序员
42 条回复
dearmymy
96 天前
@TimePPT 这本书非常好啊,让我彻底告别之前 c 风格 python
dayeye2006199
96 天前
你是不是在找 fluent python
visper
95 天前
你需要 21 天精通 python?
fbichijing
95 天前
不要企图用一个软件去解决所有问题。书籍也是。
TimePPT
95 天前
@dearmymy 是的,概念和实践相结合,简单易懂,朱雷大佬是真牛
laikick
95 天前
@smallboy19991231 质量 (X) 品质 (√)
augustheart
95 天前
入门书没法面面俱到的。打个比方,你准备写一本入门书,然后所有语法点都讲了,最后你发现那本书的厚度就够劝退入门者了
又比如说,我个人自学 c/c++的第一个最大关卡是怎么编译一个项目,我不能说 c language pragma 里面没讲怎么在 windows 上用 mingw 编译就说这书垃圾对吧?
ps:我还真是在一本名叫 21 天精通 c++的书上学会怎么编译和写 makefile 的
HashV2
95 天前
看这本书的名字是教写自动化脚本的,没必要花大量篇幅去教面向对象。
asm
95 天前
其实 python 作为面向过程编程也是相当不错的,何必去追去用不上的呢。等你需要的时候,会自然而然的学会的并用上的。
l1xnan
95 天前
确实已经能干活了,有点追求就再学点中高级的内容。我们这边有用 Python 搞了几年数据分析的,代码没什么组织,风格还是面条式的一个函数套一个函数,一个函数几百行,一个文件几千行,出现 class 都是罕见的🤮🤮🤮
vialon17
95 天前
我直接拿了 flask 的狗书给我朋友入门,哈哈。
flask web development -- developing web applications with python
jqtmviyu
95 天前
@laikick #25 哈哈, 模仿语言警察是吧🐶
jqtmviyu
95 天前
面向过程当个脚本小子不好吗?

刚学习 python 拿了个 giithub 上的项目 autobangumi 开改, 面向对象的写法还是看懂, 但是新分支引入协程就一脸问号了.我直接放弃.
haose
95 天前
书籍的话 《流畅的 Python 》还是不错的
deplives
95 天前
这个书好评很高么? python 相关的书籍我只认 Fluent Python
msg7086
95 天前
这本书的书名我拿 AI 翻了一下:
《 Python 自动化办公,给小白的实用编程》
他的目标是让你把办公工作自动化,只是自动化的时候用到了 Python ,所以教你个皮毛,能把工作自动化了就完事了。就像 Excel 办公教程,也不一定都会教你怎么写 VBA 代码,毕竟大多数人用 Excel 撑死也就写写公式做做过滤画点图也就完事了。
Spute
95 天前
推荐:《 python 编程:从入门到实践》
https://weread.qq.com/web/reader/19532980715c01921954a54
nevermoreluo
95 天前
以下回复针对 op 说的只是为了提高工作效率的目的

1. 这本书在教我们怎么用 python 面向办公软件常见的场景用简单代码处理问题。
至于 class,self,__init__都是在自己想构建一个面向对象的工程时才会用到。
可以认为再进一步,觉得目前这本书掌握了之后,想更好的组织和认识自己的代码的时候,可以考虑的事情。


2. 至于能不能绕,如果只是自己用用的,能绕都可以绕,如果是自己用,只用保证自己功能正常的话,自己的代码可以完全不用面向对象也可以。(但是不可避免的需要用到别人的库,这个时候看懂看不懂就是另一回事情了,毕竟不是所有库都有完善易懂的文档的)


3. 我无法用足球或者开车解释,勉强用厂子解释吧。面向对象是一种编写代码的组织方式。
这么说吧,我开个小厂,总共就我和家里人,我不用学管理(不用管很复杂的构建编程技巧),陈设摆放机床反正就直接拿别人搞好的直接套用(用了别人写好的库),税务报账也直接让我亲戚代管(找别人帮我写个类我只管用)。一切从简,这个厂能运行能赚钱就是好事不是吗。
但是哪天你说要开始扩建了,招个一百个人,陈设,管理,薪资,食宿,现金财务分离等等等等,还是要学习一套架构去管理(面向对象就是这套架构的方法论的一种)否则容易一团乱麻解不开
yh7gdiaYW
95 天前
yield 确实讲不讲无所谓,class ,self ,__init__这几个不讲这书可能过于入门了,建议换一个
akin520
95 天前
入门,写个脚本,完全用不这些, 那些都是高级教的:)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1053740

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX