这样写python注释让代码更加的优雅


Posted in Python onJune 02, 2021

python这样注释,让你的代码看起来更加的优雅,是不是常常感觉自己的python代码写出来,看起来特别的乱,虽然可以正常运行,但是在优雅性上似乎欠缺的很多,这篇文章主要教你,如何让你的python代码看起来更加的优雅与美观,

一、注释欣赏

这里有一段飞兔小哥哥自己常写的注释模版

这里主要分为表头注释、类注释、欢迎语以及方法注释

表头注释会标注这个项目的名称、文件名、项目作者、时间等基础信息

类注释会标注这个类主要用来做什么的

而方法注释则表示当前方法的作用

​​#!/usr/bin/env python
# encoding: utf-8
'''
#-------------------------------------------------------------------
#                   CONFIDENTIAL --- CUSTOM STUDIOS
#-------------------------------------------------------------------
#
#                   @Project Name : the desc of project
#
#                   @File Name    : main.py
#
#                   @Programmer   : autofelix
#
#                   @Start Date   : 2021/06/01 12:42
#
#                   @Last Update  : 2021/06/01 12:42
#
#-------------------------------------------------------------------
'''
import requests, os, platform, time
from Crypto.Cipher import AES
import multiprocessing
from retrying import retry
 
class M3u8:
    '''
     This is a main Class, the file contains all documents.
     One document contains paragraphs that have several sentences
     It loads the original file and converts the original file to new content
     Then the new content will be saved by this class
    '''
    def __init__(self):
        '''
        Initial the custom file by self
        '''
        self.encrypt = False
 
    def hello(self):
        '''
        This is a welcome speech
        :return: self
        '''
        print("*" * 50)
        print(' ' * 15 + 'm3u8链接下载小助手')
        print(' ' * 5 + '作者: autofelix  Date: 2021-06-01 12:42')
        print(' ' * 10 + '适用于非加密 | 加密链接')
        print("*" * 50)
        return self
 
    def run(self):
        pass
 
if __name__ == '__main__':
    M3u8().hello().run()

附:python函数注释规范

首先来两段优秀开源框架的代码注释

例1 tornado.web.RequestHandler的get_arguments函数.

def get_argument(self, name, default=_ARG_DEFAULT, strip=True):
        """Returns the value of the argument with the given name.

        If default is not provided, the argument is considered to be
        required, and we raise a `MissingArgumentError` if it is missing.

        If the argument appears in the url more than once, we return the
        last value.

        The returned value is always unicode.
        """
        return self._get_argument(name, default, self.request.arguments, strip)

例2 requests的get函数

def get(url, params=None, **kwargs):
    """Sends a GET request.

    :param url: URL for the new :class:`Request` object.
    :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`.
    :param \*\*kwargs: Optional arguments that ``request`` takes.
    :return: :class:`Response <Response>` object
    :rtype: requests.Response
    """

    kwargs.setdefault('allow_redirects', True)
    return request('get', url, params=params, **kwargs)

对比下例1和例2, tornado框架的函数倾向与给出函数的用途说明,而不提供具体的输入参数说明,并且相对来说函数名字也是浅显易懂,而requests库看起来比较简洁一点,具体的输入和输出都给的很完整,看起来很是赏心悦目,所以我个人更偏向于例2的注释,当然,也有将例1和例2注释特点结合起来的库,比如tensorflow库,因为涉及的输入参数以及函数较为复杂,因此输入参数和函数原理有较为详尽的说明。总之,大部分编写函数的时候参考例2的注释方式,代码也看起来较为优雅,而遇到比较复杂的情况,则可以参考例1加上必要的函数详细说明。

总结

到此这篇关于python注释的文章就介绍到这了,更多相关python注释内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
go语言计算两个时间的时间差方法
Mar 13 Python
python版本坑:md5例子(python2与python3中md5区别)
Jun 20 Python
Python多进程库multiprocessing中进程池Pool类的使用详解
Nov 24 Python
使用Python的Dataframe取两列时间值相差一年的所有行方法
Jul 10 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
Jun 03 Python
python中matplotlib条件背景颜色的实现
Sep 02 Python
使用pandas的box_plot去除异常值
Dec 10 Python
python实现字符串和数字拼接
Mar 02 Python
python网络编程socket实现服务端、客户端操作详解
Mar 24 Python
django中嵌套的try-except实例
May 21 Python
Selenium alert 弹窗处理的示例代码
Aug 06 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 Python
上帝为你开了一扇窗之Tkinter常用函数详解
只用20行Python代码实现屏幕录制功能
TensorFlow中tf.batch_matmul()的用法
Jun 02 #Python
pytorch 运行一段时间后出现GPU OOM的问题
Jun 02 #Python
python flask开发的简单基金查询工具
python爬取网页版QQ空间,生成各类图表
Python爬虫实战之爬取携程评论
You might like
怎样在UNIX系统下安装MySQL
2006/10/09 PHP
通过PHP的内置函数,通过DES算法对数据加密和解密
2012/06/21 PHP
php删除左端与右端空格的方法
2014/11/29 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
JQuery魔力之$(&quot;tagName&quot;)与selector
2012/03/05 Javascript
上传的js验证(图片/文件的扩展名)
2013/04/25 Javascript
jQuery写fadeTo示例代码
2014/02/21 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
jQuery插件支持同一页面被多次调用
2016/02/14 Javascript
jQuery中each()、find()和filter()等节点操作方法详解(推荐)
2016/05/25 Javascript
详解JavaScript中this关键字的用法
2016/05/26 Javascript
Node.js调试技术总结分享
2017/03/12 Javascript
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
2017/09/11 jQuery
Vue cli构建及项目打包以及出现的问题解决
2018/08/27 Javascript
Vue 组件的挂载与父子组件的传值实例
2020/09/02 Javascript
vue移动端写的拖拽功能示例代码
2020/09/09 Javascript
python中关于日期时间处理的问答集锦
2013/03/08 Python
使用Python的PIL模块来进行图片对比
2016/02/18 Python
Python正则抓取网易新闻的方法示例
2017/04/21 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
python验证码识别教程之滑动验证码
2018/06/04 Python
Django框架模板的使用方法示例
2019/05/25 Python
Django 通过JS实现ajax过程详解
2019/07/30 Python
Python面向对象封装操作案例详解
2019/12/31 Python
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
实习单位接收函
2014/01/11 职场文书
反对四风自我剖析材料
2014/10/07 职场文书
调解书格式范本
2015/05/20 职场文书
体育教师教学随笔
2015/08/15 职场文书
Java中CyclicBarrier和CountDownLatch的用法与区别
2021/08/23 Java/Android
MySQL数据库10秒内插入百万条数据的实现
2021/11/01 MySQL
以下牛机,你有几个
2022/04/05 无线电