首页 > 编程语言 >Python——代码书写风格

Python——代码书写风格

时间:2024-03-26 17:11:28浏览次数:30  
标签:复杂 Python 书写 代码 better -- than

Python之禅

Tim Peters的“Python之禅”汇集了Python语言涉及和Python编程20条准则。

它是个复活节彩蛋,或者说是隐藏的笑话。当运行import this时就会出现。

import this


The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
  • 美丽胜于丑陋

指易于阅读和理解的代码。虽然计算机会运行可读性不强的代码,但这样的代码对于程序员而言是不易维护和调试的。Python之所以受欢迎,是因为它的语法不想其他语言那样充斥着神秘的标点符号。

  • 明确胜于隐含

代码应该是详细明确的,应避免把代码的功能隐匿再晦涩的、且需要对语言非常熟悉才能理解的语言特性中。

  • 简单胜于复杂。复杂胜于更复杂。

任何东西都既可以用简单的技术建造,也可以用复杂的技术建造。一个用铲子就能解决的小问题,没必要用挖掘机来搞。而如果是大工程,那么调用挖掘机来作业,总是比拿100个铲子来的要直接一些。所以,要学则简单而非复杂,但也要知道简单方案的局限性。

  • 扁平胜于嵌套

别嵌套那么多的子类别,这些层级结构往往并不会增强代码的组织性,而是增强了官僚性。

  • 稀疏胜于密集

不要让代码一次做太多的事情。分散再多行的代码往往比密集的单行代码更容易阅读。即简单胜于复杂

  • 可读性很重要

缩写名称很容易,但是给人的理解会很烦恼。现在的内存信息足以让你编写完整的函数名称。所以花点时间为变量和函数想出具有描述性且具体的名称。

  • 特殊情况不足以打破规则,尽管实用胜过纯粹

在编程过程中,有很多最佳实践值得程序员努力践行。一方面,绕过这些实践,快速实现需求也许会很好,但可能会导致一堆不一致、不可读的代码烂摊子。另一方面,妥协遵守一些规则可能会导致高度抽象、不可读的代码。

  • 错误永远不应该悄无声息地过去,除非明确沉默。

当函数返回错误代码或None而不是提示异常时,“无声的错误”就会发生。即程序快速失败和崩溃要比不提示错误并继续运行好。后来发生的不可避免的错误将更加难以调试。

  • 面对模棱两可的问题,不要猜测

代码未能正常执行时有明确原因的,只有通过仔细、批判性的思考才能解决问题。拒绝通过盲目尝试来解决问题。

  • 应该有一个,最好只有一个明显的方法能使用

事实证明,多种方法,好处可以灵活使用多种写法,坏处是需要学习和了解多种写法。最好只有一个明显的方法能使用。

  • 尽管这种方式一开始可能并不明显,除非你是荷兰人

笑话而已,创造者Guido van Rossum 是荷兰人。

  • 有总比没有好,然而不经思考就做还不如不做

运行速度慢的代码显然比不上运行速度快的代码。但是,多等待程序运行一会儿,总比程序尽快运行完却发现结果是错的要好。

  • 如果实现很难解释,那就是个坏主意。如果实现很容易解释,那可能是个好主意。

如果代码复杂到让专业人员无法理解和调试的程度,那就是坏代码。但是,很容易被解释的代码也不一定就是好代码。

  • 名称空间是一个非常棒的想法——让我们做更多这样的事情吧!

扁平胜于嵌套,尽管命名空间确实很好,但你应该只为防止命名冲突而使用命名空间,而不是添加不必要的分类。

标签:复杂,Python,书写,代码,better,--,than
From: https://www.cnblogs.com/xinbing/p/18096328

相关文章

  • 实数转分子和分母功能块(博途SCL和CODESYS ST源代码)
    在利用电子齿轮实现比例随动控制的很多场合我们需要给出电子齿轮指令的分子和分母值,这时候我们可以利用Real_To_Faction功能块(实数转分子和分母功能块)1、排线往复比例随动控制(MC_GearIn和MC_GearOut电子齿轮指令应用)排线往复比例随动控制(MC_GearIn和MC_GearOut电子齿轮......
  • 基于公众号的微信支付步骤详解,附全部代码
    一、背景介绍最近接到一个项目,需要在微信公众号菜单中集成一个vue系统,支持下单、微信支付等功能,下面就微信支付核心部分做一下记录。二、对接流程图1)对接流程图2)涉及接口(接口地址:API列表-JSAPI支付|微信支付商户平台文档中心)三、微信支付相关申请及配置在正式编......
  • 【图论 | 数据结构】用链式前向星存图(保姆级教程,详细图解+完整代码)
    一、概述链式前向星是一种用于存储图的数据结构,特别适合于存储稀疏图,它可以有效地存储图的边和节点信息,以及边的权重。它的主要思想是将每个节点的所有出边存储在一起,通过数组的方式连接(类似静态数组实现链表)。这种方法的优点是存储空间小,查询速度快,尤其适合于处理大规模......
  • 人工智能时代都要来了,为什么还要学习Python?
    前言Python是当今非常流行的编程语言,在互联网上经常可以看到他的身影。它应用非常广泛,例如编程、Web开发、机器学习和数据科学Q等。TIOBE官网近日公布了2023年8月的编程语言排行榜。Python依然排行第一,占比13.33%、C语言排行第二,占比11.41%、C++排行榜单第......
  • Java代码
    publicclassDemo11{publicstaticvoidmain(String[]args){intarr1[]={0,1,2,3,4,5,6,7,8,9};intarr2[]=arr1;inta=0;for(inti=arr2.length-1;i>=0;i--){arr2[i]=a;a++;......
  • 04_根据代码浅入spring Bean的生命周期
    上一篇说过相关配置的加载,下面开始将bean在spring中的生命周期,本章将先简单的执行代码查看bean的创建过程。下面是图示:代码演示:①配置文件在这段配置中使用到了set方法initMethod和destroyMethod创建UserBean自定义实现BeanPostProcessor<beanname="customBea......
  • 代码随想录算法训练营day34 | leetcode 1005. K 次取反后最大化的数组和、134. 加油站
    目录题目链接:1005.K次取反后最大化的数组和-简单题目链接:134.加油站-中等题目链接:135.分发糖果-困难题目链接:1005.K次取反后最大化的数组和-简单题目描述:给你一个整数数组nums和一个整数k,按以下方法修改该数组:选择某个下标i并将nums[i]替换为-nums[i]。重......
  • python新手怎么兼职-用Python在家兼职赚钱的4个方法
    随着人工智能技术的发展,各行各业都在发生着变化,每天AI(人工智能)新技术都在冲击着各行各业,比如WPS的智能设计、阿里的鲁班等等,总有一种干死干活不如早点掌握新技能的感觉,避免心中的小慌张。其实最近大火的AI,学习起来也不是想象中那么复杂的,只要掌握一个技能就能入门了,那就是:P......
  • python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了
    本文罗列了了python零基础入门到精通的详细教程,内容均以知识目录的形式展开。01.python由来与发展介绍02.项目开发流程第一章markdown编辑器01.markdown基本语法02.Typora简介与安装03.Windows上gitee+Typora设置图床04.macOS上gitee+Typora设置图床第二章计算机......
  • 如何才能Python快速入门?
    无论是哪种编程语言,最开始往往是最难的,那么今天,我就来谈谈如何才能快速入门python编程。设定目标如果你学python是想找工作的话,可以先看看对于python程序员的相关招聘要求,比如这是我在某网找到的一个有关初级Python程序员的招聘要求,可以看看:熟悉Python及常用的Web开发框......