Stackoverflow上百萬的Python問題|最火的十個
整理者:leoxin
Stackoverflow应该是每个码农耳熟能详的网站,上面有大量的问题,基本上你遇到的编程的也好,环境安装也好,调试出错也好,都有大牛在上面回答!年前我做个爬虫爬取了Stackoverflow上近90万的数据,想后面写一篇可视化的分享报告!今天我们先看一下投票最多的问题,看看你能回答几道?
1.What does the “yield” keyword do?投票人数:7700 围观人数:1,591,544
- 看来大家对Python里面最yield 这个用法都非常好奇,确实这个用法一开始学的时候非常别扭,一头雾水,别的语言根本没有这个。
- yield跟Python里面的生成器紧密相关,刚开始看的时候觉得很别扭,尤其是带有yield的生成器函数用法和逻辑怪怪的,比如用scrapy框架的时候,看到yield头大呢,因为scrapy爬取数据的时候大量的用yield处理。
- 但是当你用习惯之后,会发现这种用法非常Python之美
投票人数:4232 围观人数:565,158
- metaclass其实就是元类,元类到底是啥,有啥用呢!Python里面有几个非常难懂的概念,比如上面的yield,还有装饰器,初学者可能已经比较头疼了,这里还有更复杂的是元类!
- 我个人觉得元类算是Python里面最晦涩难懂的概念,比较冷门!要懂元类需要对类非的内部结构和逻辑非常了解,而且在多个类之间继承封装的时候,会考虑用到.
- 我个人比较喜欢用设计模式来化解,青菜萝卜各有所爱,但是元编程的技巧,却是非常值得学Python的同学好好研究一下。
投票人数:3592 围观人数:2,553,760
- 这个问题看上去很简单啊,为啥这么多都在问。有的小伙伴说os.path.exist(path)不就搞定啦,但是点开看看里面展开了激烈的讨论.
- 也有人用os.path.isfile(path),也有人用pathlib库,还有人用os.access()等等,各抒己见,让我长见识了!
投票人数:3590 围观人数:1,209,596
三目运算,很多有c,c++基础的同学对这个一定不陌生,那么Python里面到底有没有三目运算呢,答案是有的,比如:
#way1
1 if a > b else -1
#way2
(falseValue, trueValue)[test == True]
#way3
a=1
b=2
print ({True: 100, False: 200}[a > b])
上面3种三目运算的写法是不是让你脑洞大开,还能这样。是的,尤其是在做状态机的时候会用到,历史文章里面有一篇"Google面试算法题,两桶水"就用到了这招。
5.What does if name == “main”: do?投票人数:3590 围观人数:1,209,596
- 所有学Python的同学,刚上来学的时候一定会碰到这行代码,我自己刚开始的学的时候,就当它是main函数入口函数。
- 后来学了一段时间,才慢慢体会到,这行代码背后的深意.name其实跟模块的引用有关,如果在模块内部运行这个程序,就是main这个名字,如果是外部引用,则是模块的名字.
投票人数:3276 围观人数:2,324,850
點擊查看更多內(nèi)容
7人點贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦