我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python编程规范系列--建议01~0

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python编程规范系列--建议01~0

  本系列来自《编写高质量代码 改善python程序的91个建议》的读书笔记整理。

本书主要内容

    1)容易被忽视的重要概念和常识,如代码的布局和编写函数的原则等;
    2)编写python程序管用的方法,如利用assert语句去发现问题,使用enumerate()获取序列迭代的索引和值等;
    3)语法中的关键条款,如有节制地使用from…import语句,异常处理的几点基本原则等;
    4)常见库的使用,如按需选择sort()或者sorted(),使用Queue使多线程更安全等;
    5)python设计模式的使用,如用发布订阅模式实现松耦合,用状态模式美化代码等;
    6)python内部机制,如名字查找机制,描述符机制等;
    7)开发工具的使用,如pip等各种开发工具的使用,各种代码测试用具的使用等;
    8)python代码的性能分析,优化的原则,工具,技巧,以及常见性能问题的解决等。

本章主要内容

        建议1:理解pythonic概念
        建议2:编写pythonic代码
        建议3:理解python与C语言的不同之处
        建议4:在代码中适当添加注释
        建议5:通过适当添加空行使代码布局更为优雅,合理
        建议6:编写函数的4个原则
        建议7:将常量集中到一个文件

建议1:理解pythonic概念

    1)pythonic:充分体现python自身特色的代码风格。
    2)举例:
1 # 交换两个变量的值,packaging/unpackaging机制
2 x = 2
3 y = 3
4 x, y = y, x
5 print x, y
1 # 字符串格式化
2 print 'Hello %(name)s!' % {'name': 'Tom'}
1 # 字符串格式化
2 print 'Hello {name}!'.format(name='Tom')
    3)python的包和模块结构: (1) 包和模块的命名采用小写,单数形式且短小;(2)包通常作为命名空间,如只包含空的__init__.py文件。

建议2:编写pythonic代码

    1)要避免劣化代码:(1)避免只用大小写来区分不同的对象;(2)避免使用容易引起混淆的名称;(3)不要害怕过长的变量名;
    2)pep8检测工具:
1 C:\>pip install -U pep8
2 
3 C:\Users\Administrator\Desktop\zxt>pep8 --first database.py
4 database.py:83:1: E302 expected 2 blank lines, found 1
5 
6 >pep8 --show-source --show-pep8 waijiao.py

建议3:理解python与C语言的不同之处

    1)缩进{}
    2)'"
    3)三元操作符?:
    4)switch...case
1 n = raw_input("please input a number:")
2 if n == "0":
3 print "You typed zero."
4 elif n == "1":
5 print "You are in top."
6 elif n == "2":
7 print "N is an even number."
8 else:
9 print "Error!"
用跳转可以实现:
1 def func():
2      return {
3          "0": "You typed zero.",
4          "1": "You are in top.",
5          "2": "N is an even number."
6      }.get(n, "Error!")

建议4:在代码中适当添加注释

    1)使用块或者行注释的时候仅注释复杂的操作,算法,难以理解的技巧或者不够一目了然的代码;
    2)注释和代码隔开一定的距离;
    3)给外部可访问的函数和方法添加文档注释(ddocstring)(""" """);
    4)推荐文件头部包含copyright申明。模块描述等。
 1 """
 2 Requests HTTP library
 3 ~~~~~~~~~~~~~~~~~~~~~
 4 Requests is an HTTP library, written in Python, for human beings. Basic GET
 5 usage:
 6    >>> import requests
 7    >>> r = requests.get('https://www.python.org')
 8    >>> r.status_code
 9    200
10    >>> 'Python is a programming language' in r.content
11    True
12 ... or POST:
13    >>> payload = dict(key1='value1', key2='value2')
14    >>> r = requests.post('http://httpbin.org/post', data=payload)
15    >>> print(r.text)
16    {
17      ...
18      "form": {
19        "key2": "value2",
20        "key1": "value1"
21      },
22      ...
23    }
24 The other HTTP methods are supported - see `requests.api`. Full documentation
25 is at <http://python-requests.org>.
26 :copyright: (c) 2015 by Kenneth Reitz.
27 :license: Apache 2.0, see LICENSE for more details.
28 """

建议5:通过适当添加空行使代码布局更为优雅,合理

    1)在一组代码表达完一个完整的思路之后,应该用空白进行间隔;
    2)尽量保持上下文语义的易理解性(如调用函数写在被调用函数之上);
    3)避免过长的代码行,每行最好不要超过80个字符;
    4)不要为了保持水平对齐而使用多余的空格;
    5)空格是使用要能在需要强调的时候警示读者:
        (1)二元运算符的左右两边应该有空格;
        (2)逗号和分号前不要使用空格;
        (3)函数名和左右括号之间,序列索引操作时序列名和[ ]之间不要空格,函数默认参数两侧不需要空格;
        (4)强调前面的操作符的时候使用空格。

建议6:编写函数的4个原则

    1)函数设计尽量短小,嵌套层次不宜过深(最好控制在3层以内);
    2)函数声明应该做到合理,简单,易于使用;
    3)函数参数设计应该考虑向下兼容;
    4)一个函数只做一件事,尽量保证函数语句粒度的一致性。

建议7:将常量集中到一个文件

示例:const.py
 1 # -*-coding:UTF-8 -*-
 2 
 3 import sys
 4 
 5 
 6 class _const(object):
 7 
 8     class ConstError(TypeError):
 9         pass
10 
11     class ConstCaseError(ConstError):
12         pass
13 
14     def __setattr__(self, name, value):
15         if self.__dict__.has_key(name):
16             raise self.ConstError, "Can't change const.{name}".format(name=name)
17         if not name.isupper():
18             raise self.ConstCaseError, 'const name "{name}" is not all uppercase'.format(name=name)
19         self.__dict__[name] = value
20 
21 
22 sys.modules[__name__] = _const()

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python编程规范系列--建议01~0

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python编程规范系列--建议01~0

本系列来自《编写高质量代码 改善python程序的91个建议》的读书笔记整理。本书主要内容    1)容易被忽视的重要概念和常识,如代码的布局和编写函数的原则等;    2)编写python程序管用的方法,如利用assert语句去发现问题,
2023-01-30

python编程规范系列--建议08~1

本系列来自《编写高质量代码 改善python程序的91个建议》的读书笔记整理。   本章主要内容建议8:利用assert语句来发现问题建议9:数据交换值时不推荐使用中间交换变量建议10:充分利用Lazy evaluation的特性建议11:
2023-01-30

Python图形编程探索系列-01-初级

设计一个主窗口,在其中添加三个标签和三个按钮,当点击按钮时,对标签的内容和色彩进行修改。import tkinter as tkroot = tk.Tk()def f1(): label1.config(text='点我,我加油了,哈
2023-01-30

小飞侠带你精通Python网络编程系列0

在Python中有以下几种标准的内置数据类型:1.NoneType: The Null object--空对象2.Numerics(数值): int-整数, long-长整数, float-浮点数, complex-复数, and     
2023-01-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录