0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

机器学习算法与Python学习简单的编码规范

马哥Linux运维 来源:未知 作者:李倩 2018-05-14 14:45 次阅读

0、前言

本文是阅读《Python Coding Rule》之后总结的最为精华及简单的编码规范,根据每个人不同喜好有些地方会有不同的选择,我只是做了对自己来说最简单易行的选择,仅供大家参考。

1、重要原则

a.保持风格的一致性很重要,但最重要的是:知道何时不一致b.打破一条既定规则的两个好理由:c.当应用规则会导致代码可读性下降(可读性赛高)d.为了和周围代码保持一致而打破规则(历史遗留)

2、最简规范

a.只使用空格缩进b.使用UTF-8编码c.每行只写一条语句d.使用行末反斜杠折叠长行,限制每行最大79字符e.导入包:每行唯一、从大到小、绝对路径f.类内方法空1行分隔,类外空2行分隔g.运算符除 * 外,两边空1格分隔,函数参数=周围不用空格h.除类名使用驼峰法以外,其他模块、函数、方法、变量均使用全小写+下划线i.1个前导下划线表示半公开,2个前导下划线表示私有,与保留字区分使用单个后置下划线j.开发时使用中文注释,发布时再写英文文档

3、详细规范

a.全文通用b.只使用空格缩进,4个空格表示1个缩进层次c.每行长度限制在79字符内,使用行末反斜杠折叠长行d.使用UTF-8编码e.每行只写一条语句

4、代码命名

一行只import一个包,Imports的顺序为:标准库、相关主包、特定应用,每组导入之间放置1行空行,所有导入使用包的绝对路径。

分割顶层函数和类的定义使用2行空行,分割类内方法定义使用1行空行,class行与第一个方法定义之间要有1行空行。

整体使用英文书写方式来使用空格,即仅在逗号、分号后面添加1个空格,其他任何符号如圆括号、方括号、花括号等都不用空格把符号与字符分开,写在一起表示一个整体;运算符除 * 号以外,其他符号两边都各用1个空格分隔;函数参数=号周围不用空格。

模块名:不含下划线、简短、全小写;

类名、异常名:首字母大写单词串的驼峰法;

函数名、全局变量名、方法名、实例变量:全小写,加下划线增加可读性;

一个前导下划线仅用于不想被导入的全局变量(还有内部函数和类)前加一个下划线)、不打算作为类的公共接口的内部方法和实例变量;

两个前导下划线以表示类私有的名字,只用来避免与类(为可以子类化所设计)中的属性发生名字冲突。

私有属性必须有两个前导下划线,无后置下划线;

非公有属性必须有一个前导下划线,无后置下划线。

公共属性没有前导和后置下划线,除非它们与保留字冲突,此情况下,单个后置下划线比前置或混乱的拼写要好,例如:class_优于klass。

5、编写技巧

与None之类的单值比较,永远用:'is'或'is not'来做:if x is not None

在模块和包内定义基异常类(base exception class)

使用字符串方法(methods)代替字符串模块。

在检查前缀或后缀时避免对字符串进行切片,用startswith()和endswith()代替,如:No: if foo[:3] == 'bar':Yes: if foo.startswith('bar'):

只用isinstance()进行对象类型的比较,如:No: if type(obj) is type(1):Yes: if isinstance(obj, int)

判断True或False不要用 ==,如:No: if greeting == True:Yes: if greeting:

6、注释

开发时,注释全部用中文来写,当要发布脚本工具时,再写英文文档。

注释应该是是完整的句子(短语也可),首字母大写;如果注释很短,省略末尾句号;注释块由一个or多个完整句子构成的段落组成,则每个句子使用句子结尾;句末句号后使用两个空格。

注释块每行以#和一个空格开始,并且跟随注释的代码具有相同的缩进层次,注释块上下方有一空行包围。

谨慎使用行内注释,至少使用两个空格与语句分开。

使用 pydoc; epydoc; Doxgen 等文档化工具,为所有公共模块、函数、类和方法边写文档字符串,文档字符串对非公开的方法不是必要的,但你应该有一个描述这个方法做什么的注释,这个注释应该在"def"这行后。

多行文档字符串结尾的""" 应该单独成行。

版本注记:定义一个变量__version__ = "$Revision: 1.4 $"

Stay hungry. Stay foolish.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码
    +关注

    关注

    6

    文章

    942

    浏览量

    54826
  • 机器学习
    +关注

    关注

    66

    文章

    8418

    浏览量

    132627
  • python
    +关注

    关注

    56

    文章

    4797

    浏览量

    84675

原文标题:Python最简编码规范

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Python机器学习常用库

    欢迎的编程语言!人工智能是当前最热门话题之一,机器学习技术是人工智能实现必备技能,Python编程语言含有最有用的机器学习工具和库,以下是
    发表于 03-26 16:29

    常用python机器学习库盘点

    现在人工智能非常火爆,机器学习应该算是人工智能里面的一个子领域,而其中有一块是对文本进行分析,对数据进行深入的挖掘提取一些特征值,然后用一些算法学习,训练,分析,甚至还能预测,那么
    发表于 05-10 15:20

    使用 Python 开始机器学习

    功能的程序库,scikit-learn是你的最佳选择!这个优秀的免费软件提供了机器学习和数据挖掘所需要的所有工具。它是目前Python机器学习
    发表于 12-11 18:37

    Python机器学习库和深度学习库总结

    是基于Scipy为机器学习建造的的一个Python模块,他的特色就是多样化的分类,回归和聚类的算法包括支持向量机,逻辑回归,朴素贝叶斯分类器,随机森林,Gradient Boosti
    发表于 11-10 14:49 902次阅读

    Python机器学习

    囊括一些很好的Python机器学习库的清单,并将其张贴在下面。 在我看来,Python学习(和实现)
    发表于 10-13 16:21 0次下载

    Python基础教程之《Python机器学习—预测分析核心算法》免费下载

     在学习和研究机器学习的时候,面临令人眼花缭乱的算法机器学习新手往往会不知所措。本书从
    发表于 09-29 08:00 19次下载

    python机器学习和深度学习学习书籍资料免费下载

    本文档的主要主要内容详细介绍的是python机器学习和深度学习学习书籍资料免费下载。
    发表于 11-05 16:28 95次下载

    python机器学习笔记资料免费下载

    本文档的主要内容详细介绍的是python机器学习笔记资料免费python机器学习笔记资料免费下载
    发表于 03-01 10:09 39次下载

    Python机器学习应用

    机器学习的目标:机器学习是实现人工智能的手段,主要研究内容是如何利用数据或经验进行学习,改善具体算法
    发表于 05-25 16:24 19次下载

    python机器学习概述

    Python机器学习概述 机器学习是人工智能领域的一个重要分支,是一种可以自动改进和学习
    的头像 发表于 08-17 16:11 1075次阅读

    机器学习算法汇总 机器学习算法分类 机器学习算法模型

    机器学习算法汇总 机器学习算法分类 机器
    的头像 发表于 08-17 16:11 1109次阅读

    机器学习算法总结 机器学习算法是什么 机器学习算法优缺点

    机器学习算法总结 机器学习算法是什么?机器
    的头像 发表于 08-17 16:11 1917次阅读

    机器学习算法入门 机器学习算法介绍 机器学习算法对比

    机器学习算法入门 机器学习算法介绍 机器
    的头像 发表于 08-17 16:27 955次阅读

    python数据挖掘与机器学习

    python数据挖掘与机器学习 Python是一个非常流行的编程语言,被广泛用于数据挖掘和机器学习
    的头像 发表于 08-17 16:29 1319次阅读

    机器学习有哪些算法机器学习分类算法有哪些?机器学习预判有哪些算法

    机器学习有哪些算法机器学习分类算法有哪些?机器
    的头像 发表于 08-17 16:30 1996次阅读