首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

代码整洁之道-编写 Pythonic 代码

如果想处理一个特定异常或者想从CSV文件读取更多数据,可以进一步分解这个函数,以遵循单一职责原则,一个函数一做一件事。...通常在方法,类和模块开头使用。docstring是该对象__doc__特殊属性。 Python 官方语言建议使用“”三重引号“”来编写文档字符串。你可以 PEP8 官方文档中找到这些实践。...关于docstring格式写法,目前存在多种风格,但是这几种风格都有一些统一标准。 即使字符串符合一行,也会使用三重引号。当你想要扩展时,这种注释非常有用。...‘ 三重引号字符串前后不应有任何空行 使用句点(.)结束docstring语句 类似地,可以应用 Python 多行 docstring 规则来编写多行 docstring。...docstring以及参数声明进行修改

1.6K20

一文弄懂Python代码规范

Python,单引号和双引号括起来字符串是相同。...但是,当字符串包含单引号或双引号字符时,建议使用另一种引号,以避免字符串中使用反斜杠,这有助于提高可读性。...注意: 即使字符串适合一行,也使用三重引号。这样可以方便以后扩展它。 结束引号与开始引号同一行。这在一行中看起来更好。 文档字符串之前或之后都没有空行。 文档字符串是一个以句点结束短语。...如果类意图被子类化,并且有一个供子类使用附加接口,这个接口应该单独列文档字符串。类构造函数应该在其__init__方法文档字符串记录。各个方法应该由各自文档字符串记录。...如果确实需要保留末尾空白,可以考虑使用特殊字符(如空格或制表符)进行表示,以避免不同环境处理不一致。

24010
您找到你想要的搜索结果了吗?
是的
没有找到

Google Python 编程风格指南

对于Emacs用户,保持默认设置即可。 Python语言规范 Lint 对你代码运行pylint 定义:pylint是一个Python源代码查找bug工具....允许使用异常, 但必须小心 定义:异常是一种跳出代码块正常控制流来处理错误或者其它异常条件方式.优点:正常操作代码控制流不会和错误处理代码混在一起....我们对文档字符串惯例是使用三重引号”“”( PEP-257 ). 一个文档字符串应该这样组织: 首先是一行以句号, 问号或惊叹号结尾概述(或者该文档字符串单纯只有一行). 接着是一个空行....使用单引号’或者双引号”之一用以引用字符串, 并在同一文件沿用. 字符串内可以使用另外一种引号, 以避免字符串中使用. GPyLint已经加入了这一检查....为多行字符串使用三重引号”“”而非三重引号’‘’. 当且仅当项目中使用单引号’来引用字符串时, 才可能会使用三重’‘’为非文档字符串多行字符串来标识引用. 文档字符串必须使用三重引号”“”.

67730

Google Python 编码规范指南(建议收藏)

我们对文档字符串惯例是使用三重引号”“”( PEP-257 ). 一个文档字符串应该这样组织: 首先是一行以句号, 问号或惊叹号结尾概述(或者该文档字符串单纯只有一行). 接着是一个空行....由于字符串是不可变, 这样做会创建不必要临时对象, 并且导致二次方而不是线性运行时间. 作为替代方案, 你可以将每个子串加入列表, 然后循环结束后用 .join 连接列表....使用单引号’或者双引号”之一用以引用字符串, 并在同一文件沿用. 字符串内可以使用另外一种引号, 以避免字符串中使用. GPyLint已经加入了这一检查....为多行字符串使用三重引号”“”而非三重引号’‘’. 当且仅当项目中使用单引号’来引用字符串时, 才可能会使用三重’‘’为非文档字符串多行字符串来标识引用. 文档字符串必须使用三重引号”“”....延时垃圾处理机制可能会导致对象生命周期被任意无限制延长. 对于文件意外引用,会导致对于文件持有时间超出预期(比如对于异常跟踪, 包含有全局变量等).

4.1K41

Google 出品 Python 编码规范,强烈推荐!

我们对文档字符串惯例是使用三重引号”“”( PEP-257 ). 一个文档字符串应该这样组织: 首先是一行以句号, 问号或惊叹号结尾概述(或者该文档字符串单纯只有一行). 接着是一个空行....由于字符串是不可变, 这样做会创建不必要临时对象, 并且导致二次方而不是线性运行时间. 作为替代方案, 你可以将每个子串加入列表, 然后循环结束后用 .join 连接列表....使用单引号’或者双引号”之一用以引用字符串, 并在同一文件沿用. 字符串内可以使用另外一种引号, 以避免字符串中使用. GPyLint已经加入了这一检查....为多行字符串使用三重引号”“”而非三重引号’‘’. 当且仅当项目中使用单引号’来引用字符串时, 才可能会使用三重’‘’为非文档字符串多行字符串来标识引用. 文档字符串必须使用三重引号”“”....延时垃圾处理机制可能会导致对象生命周期被任意无限制延长. 对于文件意外引用,会导致对于文件持有时间超出预期(比如对于异常跟踪, 包含有全局变量等).

33610

Python编程规范

> 空格 空格 Python 代码是有意义,因为 Python 语法依赖于缩进,在行首空格称为前导空格。在这一节不讨论前导空格相关内容,只讨论非前导空格。...非前导空格 Python 代码没有意义,但适当地加入非前导空格可以增进代码可读性。...字符串 1.避免循环中用+和+=操作符来累加字符串。...由于字符串是不可变,这样做会创建不必要临时对象,并且导致二次方而不是线性运行时间。 作为替代方案,你可以将每个子串加入列表,然后循环结束后用 .join 连接列表。...(也可以将每个子串写入一个 cStringIO.StringIO 缓存 2.为多行字符串使用三重引号而非三重引号

84230

Python基础知识点总结

, should be pythonic’) #找到pythonic >>> obj2.group() ‘python’ #re.match只匹配字符串开始,如果字符串开始不符合正则表达式,则匹配失败...错误处理 >>>可以程序代码捕捉和相应错误,或者忽略已发生异常。 >>>如果忽略错误,PYTHON默认异常处理行为将启动:停止程序,打印错误信息。...答案是根本不需要处理,因为python 可以接受任何类型参数,如果函数功能相同,那么不同参数类型 python 很可能是相同代码,没有必要做成两个不同函数。...浅拷贝:创建一个新对象,但它包含是对原始对象包含项引用(如果用引用方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块copy()函数...这就是单引号和双引号都可以表示字符串原因了 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

64520

Python基础知识点总结

should be pythonic') #找到pythonic >>> obj2.group() 'python' #re.match只匹配字符串开始,如果字符串开始不符合正则表达式,则匹配失败,...错误处理 >>>可以程序代码捕捉和相应错误,或者忽略已发生异常。 >>>如果忽略错误,PYTHON默认异常处理行为将启动:停止程序,打印错误信息。...答案是根本不需要处理,因为python 可以接受任何类型参数,如果函数功能相同,那么不同参数类型 python 很可能是相同代码,没有必要做成两个不同函数。...浅拷贝:创建一个新对象,但它包含是对原始对象包含项引用(如果用引用方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块copy()函数...这就是单引号和双引号都可以表示字符串原因了

78010

说说Python编码规范

二元算术、逻辑运算符前后加空格如:a = b + c list, dict, tuple, set, 参数列表 , 后面加一个空格 dict : 后面加一个空格 注释符号 # 后面加一个空格...使用 finally 子句来处理一些收尾操作 try/except 里内容不要太多,只可能抛出异常地方使用 从 Exception 而不是 BaseException 继承自定义异常类 Class...引号 同一个文件, 保持使用字符串引号一致性. 使用单引号’或者双引号”之一用以引用字符串, 并在同一文件沿用....字符串内可以使用另外一种引号, 为多行字符串使用三重引号”””而非三重引号’’’. 当且仅当项目中使用单引号’来引用字符串时, 才可能会使用三重’’’为非文档字符串多行字符串来标识引用....文档字符串必须使用三重引号”””. 不过要注意, 通常用隐式行连接更清晰, 因为多行字符串与程序其他部分缩进方式不一致. 文件和sockets 文件和sockets结束时, 显式关闭它.

67130

总结了90条简单实用Python编程技巧!

深入学习一两个业内公认 Pythonic 代码库,比如Flask等。 建议3:理解 Python 与 C 不同之处,比如缩进与 {},单引号引号,三元操作符?...++i 前边加号仅表示正,不表示操作 建议22:习惯使用 with 自动关闭资源,特别是文件读写 建议23:使用 else 子句简化循环(异常处理) 建议24:遵循异常处理几点基本原则 (1)注意异常粒度...,try 块尽量少写代码 (2)谨慎使用单独 except 语句,或 except Exception 语句,而是定位到具体异常 (3)注意异常捕获顺序,合适层次处理异常 (4)使用更加友好异常信息...,遵守异常参数规范 建议25:避免 finally 可能发生陷阱 建议26:深入理解 None,正确判断对象是否为空。...() 区别 (1)两者之间目标不同:str 主要面向客户,其目的是可读性,返回形式为用户友好性和可读性都比较高字符串形式;而 repr 是面向 Python 解释器或者说Python开发人员,其目的是准确性

32131

110道python面试题

__new__和__init__区别 __init__是初始化方法,创建对象后,就立刻被默认调用了,可接收参数,如图 ?...,__init____new__基础上可以完成一些其它初始化动作,__init__不需要返回值 4、如果__new__创建是当前类实例,会自动调用__init__函数,通过return语句里面调用...__new__函数第一个参数是cls来保证是当前类实例,如果是其他类类名,;那么实际创建返回就是其他类实例,其实就不会调用当前类__init__函数,也不会调用其他类__init__函数。...MyISAM 则会重 建表; 87、统计字符串某字符出现次数 ? 88、字符串转化大小写 ? 89、用两种方法去空格 ? 90、正则匹配不是以4和7结尾手机号 ?...乐观锁,就是很乐观,每次去拿数据时候都认为别人不会修改,所以不会上锁,但是更新时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制,乐观锁适用于多读应用类型,这样可以提高吞吐量

2.8K40

91 条写 Python 程序建议

深入学习一两个业内公认 Pythonic 代码库,比如Flask等。 建议3:理解 Python 与 C 不同之处,比如缩进与 {},单引号引号,三元操作符?...(异常处理) 建议24:遵循异常处理几点基本原则 (1)注意异常粒度,try 块尽量少写代码 (2)谨慎使用单独 except 语句,或 except Exception 语句,而是定位到具体异常...(3)注意异常捕获顺序,合适层次处理异常 (4)使用更加友好异常信息,遵守异常参数规范 建议25:避免 finally 可能发生陷阱 建议26:深入理解 None,正确判断对象是否为空。...() 区别 (1)两者之间目标不同:str 主要面向客户,其目的是可读性,返回形式为用户友好性和可读性都比较高字符串形式;而 repr 是面向 Python 解释器或者说Python开发人员,其目的是准确性...模块 建议40:深入掌握 ConfigParse 建议41:使用 argparse 模块处理命令行参数 建议42:使用 pandas 处理大型 CSV 文件 Python 本身提供一个CSV文件处理模块

60220

110道一线公司Python面试题,推荐收藏

__new__和__init__区别 __init__是初始化方法,创建对象后,就立刻被默认调用了,可接收参数,如图 ?...,__init____new__基础上可以完成一些其它初始化动作,__init__不需要返回值 4、如果__new__创建是当前类实例,会自动调用__init__函数,通过return语句里面调用...__new__函数第一个参数是cls来保证是当前类实例,如果是其他类类名,;那么实际创建返回就是其他类实例,其实就不会调用当前类__init__函数,也不会调用其他类__init__函数。...MyISAM 则会重 建表; 87、统计字符串某字符出现次数 ? 88、字符串转化大小写 ? 89、用两种方法去空格 ? 90、正则匹配不是以4和7结尾手机号 ?...乐观锁,就是很乐观,每次去拿数据时候都认为别人不会修改,所以不会上锁,但是更新时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制,乐观锁适用于多读应用类型,这样可以提高吞吐量

2K21

编写高质量Python程序(一)引论

使用 str.format() 格式化字符串,是最Pythonic字符串格式化方法。...'**与**"**:** C语言中,单引号'表示单个字符型数据(char),双引号"表示字符串,默认以\0结尾;Python,'和"无明显区别。 三元操作符**?...x = x + 1 # 这样注释略近 x = x + 1 # 更好注释位置 给外部可访问函数或方法添加文档注释。描述其功能、参数、返回值及可能异常等信息。...实际工作,很容易发生代码不断迭代,而忘了更新注释情况,需要加以小心。 适当添加空行,使代码布局更优雅、合理 一组代码表达完一个完整思路之后,应用空行进行分隔。 保持上下文语义易理解性。...函数名和左括号之间、序列索引操作时序列名和[]之间不需要空格,函数参数=两侧不需要空格。 编写函数4个原则 函数设计尽量短小,嵌套层次不宜过深。 函数声明需合理、简单、易于使用。

57700

90 条实用编写Python 程序建议

一 编程前言 建议1:理解Pythonic概念,详见Python《Python之禅》。 建议2:编写Pythonic代码建议。...演变过程等,深入学习一两个业内公认Pythonic代码库,比如Flask等; 建议3:理解Python与C不同之处,比如缩进与{},单引号引号,三元操作符?...建议23:使用else子句简化循环(异常处理)。 建议24:遵循异常处理几点基本原则。...(1)注意异常粒度,try块尽量少写代码; (2)谨慎使用单独except语句,或except Exception语句,而是定位到具体异常; (3)注意异常捕获顺序,合适层次处理异常; (4...)使用更加友好异常信息,遵守异常参数规范; 建议25:避免finally可能发生陷阱。

54710

Python | 改善Python程序91个建议

1:引论 建议1、理解Pythonic概念—-详见Python《Python之禅》 建议2、编写Pythonic代码 避免不规范代码,比如只用大小写区分变量、使用容易混淆变量名、害怕过长变量名等。...建议22:习惯使用with自动关闭资源,特别是文件读写 建议23:使用else子句简化循环(异常处理) 建议24:遵循异常处理几点基本原则 注意异常粒度,try块尽量少写代码 谨慎使用单独...except语句,或except Exception语句,而是定位到具体异常 注意异常捕获顺序,合适层次处理异常 使用更加友好异常信息,遵守异常参数规范 建议25:避免finally可能发生陷阱...两者之间目标不同:str主要面向客户,其目的是可读性,返回形式为用户友好性和可读性都比较高字符串形式;而repr是面向Python解释器或者说Python开发人员,其目的是准确性,其返回值表示Python...模块 建议40:深入掌握ConfigParse 建议41:使用argparse模块处理命令行参数 建议42:使用pandas处理大型CSV文件 Python本身提供一个CSV文件处理模块,并提供reader

1.4K31

为什么你Python代码质量如此不堪……

引论 建议1、理解Pythonic概念—-详见Python《Python之禅》 建议2、编写Pythonic代码 (1)避免不规范代码,比如只用大小写区分变量、使用容易混淆变量名、害怕过长变量名等...建议22:习惯使用with自动关闭资源,特别是文件读写 建议23:使用else子句简化循环(异常处理) 建议24:遵循异常处理几点基本原则 (1)注意异常粒度,try块尽量少写代码 (2)谨慎使用单独...except语句,或except Exception语句,而是定位到具体异常 (3)注意异常捕获顺序,合适层次处理异常 (4)使用更加友好异常信息,遵守异常参数规范 建议25:避免finally...()区别 (1)两者之间目标不同:str主要面向客户,其目的是可读性,返回形式为用户友好性和可读性都比较高字符串形式;而repr是面向Python解释器或者说Python开发人员,其目的是准确性,...模块 建议40:深入掌握ConfigParser 建议41:使用argparse模块处理命令行参数 建议42:使用pandas处理大型CSV文件 》Python本身提供一个CSV文件处理模块,并提供reader

1.3K40

python常用知识梳理

或者 """......""" 3)字符串嵌入双引号等特殊符号 a)利用转义字符‘\’ b)使用单引号括起这个字符串。...>不带参数空格做分隔符 swapcase()-->字符串大小写翻转 zfill(width)-->返回长度为width字符串,不够补充空格 13)字符串格式化 replacement...0,十六进制面前显示0x 0 :空格用0填充 字符串转义字符 \a:发出系统响铃声 \b、\t、\n 14)序列 列表、元组和字符串共同点...: return value 形参(parameter):函数定义时参数 实参(argument):实际传递参数 函数文档:函数实现 函数体中用...except (Error1,Error2): 处理异常代码 try: 检测范围 except Exception[as reason]: 处理异常代码

2.2K60

Groovy语法系列教程之字符串(三)

则您字符串将包含缩进空格。...反斜杠 ' 单引号字符串引号(对于三重引号和双引号字符串是可选) " 双引号字符串引号(对于三重引号和单引号字符串是可选) \t 制表符 \b 退格键 稍后介绍其他类型字符串...第三行代码闭包使用单个java.io.StringWriter参数,您可以参数后附加<< 左移操作符。 无论哪种情况,两个占位符都是嵌入式闭包。...嵌入式闭包表达式带有多个参数将在运行时生成异常。闭包仅允许有零或一个参数。...4.5 三重引号字符串 三重引号字符串行为类似于双引号字符串,但它们可以是多行,与三重引号字符串类似。

7.4K51
领券