这样写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 相关文章推荐
python 打印出所有的对象/模块的属性(实例代码)
Sep 11 Python
Python爬虫之xlml解析库(全面了解)
Aug 08 Python
TF-IDF与余弦相似性的应用(一) 自动提取关键词
Dec 21 Python
dataframe设置两个条件取值的实例
Apr 12 Python
基于scrapy的redis安装和配置方法
Jun 13 Python
Selenium chrome配置代理Python版的方法
Nov 29 Python
Python修改文件往指定行插入内容的实例
Jan 30 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
Jul 08 Python
python进程池实现的多进程文件夹copy器完整示例
Nov 27 Python
pyinstaller打包找不到文件的问题解决
Apr 15 Python
python高级特性简介
Aug 13 Python
Python实现中英文全文搜索的示例
Dec 04 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
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
ThinkPHP3.1.3版本新特性概述
2014/06/19 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
Firefox中使用outerHTML的2种解决方法
2014/06/07 Javascript
Javascript原型链和原型的一个误区
2014/10/22 Javascript
jQuery延迟执行的实现方法
2016/12/21 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
浅谈Vue.js组件(二)
2019/04/09 Javascript
Bootstrap table 实现树形表格联动选中联动取消功能
2019/09/30 Javascript
怎么理解wx.navigateTo的events参数使用详情
2020/05/18 Javascript
Vue中keep-alive组件的深入理解
2020/08/23 Javascript
Vue使用路由钩子拦截器beforeEach和afterEach监听路由
2020/11/16 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
python文件操作相关知识点总结整理
2016/02/22 Python
python 时间戳与格式化时间的转化实现代码
2016/03/23 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
在python 不同时区之间的差值与转换方法
2019/01/14 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
python读取并定位excel数据坐标系详解
2019/06/26 Python
Pycharm保存不能自动同步到远程服务器的解决方法
2019/06/27 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
说出数据连接池的工作机制是什么?
2013/04/19 面试题
应届生护士求职信
2013/11/01 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript
go开发alertmanger实现钉钉报警
2021/07/16 Golang
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL