百科问答小站 logo
百科问答小站 font logo



怎样才能写出 Pythonic 的代码? 第1页

  

user avatar   xlzd 网友的相关建议: 
      

这个问题很好,看似简单却很难系统地总结回答,我尝试用自己现有的理解讲一讲。

首先,已有各种答案中,提到的所谓——

  • 怎样交换两个数
  • 怎样写列表推导
  • 用 Context manager
  • 用 decorator
  • ……

都是「术」,是「授人以鱼」中的「鱼」,你吃完了,就没有了。当你用上这些术之后,还怎样写「 Pythonic 」的代码呢?

在我理解,Pythonic 指的是「很 Python 」的 Python 代码。类比于——

  • 「这很知乎」一般用来表示「知乎社区特有的现象」
  • 「这很百度」表示「百度公司特有的行为」

「很 Python 」的代码就是 「 Pythonic 」,也就是说,Python 很明显区别于其它语言的(<del>优雅</del>)写法。

就如同每个人都不同,你无法见到一个人第一面就特别了解一个人的爱好、性格,但是当你们特别熟悉之后,自然就了解了。初学者(这里指初学 Python 的人,可能会有或没有多种其他语言使用经历)在一开始,应该要接受自己可以不写 Pythonic 的代码的设定,先学会基本的使用。

开始 Pythonic 的第一步熟悉 Python 特有语法,可以参考以下官方文档(对应中文版网上也有):

上面的文档里面有大部分各位答主提到的「鱼」

然后是阅读 PEP 8 -- Style Guide for Python Code ,并在写代码的过程中遵守。

接着是不要尝试用自己的代码实现已有的标准库已经实现的功能。比如拼接字符串时,你不应该尝试自己 for 循环一段一段拼,而是用 str.join 。所以,你需要熟悉标准库有哪些内容,并对常用的有点大概的印象。这样至少在需要用到某个东西的时候,大脑中有个关键词供你在 Google/百度 搜索。

网上很容易可以找到对应的中文翻译版文档,大概地过一遍,只需要有个印象就好,不用一字一句背下来。然后对你认为自己可能会用到的内容,再认真过一遍

Python 官方有一个「 Python HOWTOs 」文档,每节文档覆盖了一个特定的主题,比上面提到的文档更详细、具有参考性。

这里面介绍了「两门 Python 语言之间的迁移」、descriptor、Python 中常用推荐的写法、日志、正则、命令行参数等主题,认真学习一遍,对所谓的 Pythonic 是很有帮助的。

最后你就会发现,所谓写出 Pythonic 的代码,不是你代码很炫酷,而是开始对 Python 有一定了解了。




  

相关话题

  请问参加数学建模,打算用python的话,需要完整的学习python所有内容,还是只要学一部分就够了? 
  会有公司要一个接近40岁,水平不高,但只要应届生一半工资的程序员吗? 
  用 vim 能写大型程序吗? 
  无代码编程会是以后的趋势吗? 
  如何看待京东到家程序员离职删库被判刑 10 个月?「删库」会给公司造成什么影响? 
  做一个优秀的程序员到底难在哪里? 
  如何看待网友称小米网页上 logo 只改了一行代码,logo 就从方变圆?是真的吗? 
  【996.ICU】被国内各大厂商的浏览器及APP屏蔽,包括微信,现在只能用chrome打开,你怎么看? 
  体制内一定是混吃等死吗? 
  如何引导程序员新人按正确的流程开发? 

前一个讨论
是不是并不是所有问题都适合用神经网络预测?
下一个讨论
能把这个代码每段意思解释一下顺便说出它的原理吗?求求你们了?





© 2024-12-26 - tinynew.org. All Rights Reserved.
© 2024-12-26 - tinynew.org. 保留所有权利