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

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

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

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

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

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

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

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


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


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

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

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

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

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

© 2021 V2EX