返回顶部
首页 > 资讯 > 后端开发 > Python >Python代码风格与编程习惯的重要性
  • 151
分享到

Python代码风格与编程习惯的重要性

2023-06-15 08:06:55 151人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章将为大家详细讲解有关python代码风格与编程习惯的重要性,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Python代码风格首先我们要以 PEP8 代码规范为标准,但也无需完全遵守。例如:一行不能

这篇文章将为大家详细讲解有关python代码风格与编程习惯的重要性,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

Python代码风格

首先我们要以 PEP8 代码规范为标准,但也无需完全遵守。例如:一行不能超过 79 个字符等。

Python模块模板

模块开头指定编码格式

模块文档注释,展示模块的信息,信息内容自己决定,如:

  • Author,作者

  • Desc,模块描述

  • Date,创建时间

有一个 main() 函数

有一个程序主入口 if __name__ == '__main__':

#!/usr/bin/python3# -*- coding:utf-8 -*-# @Author: Hui# @Desc: { 项目主入口模块 }# @Date: 2020/05/21 13:04def main():    print('Hello Python')if __name__ == '__main__':    main()

main() 函数方便用于测试当前模块功能。

import 导入

import 导入,避免使用 from ... import * ,因为这可能导致模块、类、变量名重复而导致错误。

我自己的 import 代码风格有两种。

由短到长

根据代码的长度由短到长依次导入,import 过度到 from ... import ... ,换行分割可有可无,我是根据 from ... import ... 前面的 import 的数量和整体美观来决定要不要换行。

import osimport sysimport timeimport randomimport configimport pygameimport requestsimport numpy as npfrom PIL import Imagefrom threading import Threadfrom datetime import datetime

分类导入

分类导入,是分好类后在根据代码的长度由短到长依次导入,主要有:

  • Python内置模块

  • Python自建模块

  • Python第三方库

# Python内置模块导入import osimport sysimport timeimport randomfrom threading import Threadfrom datetime import datetime# Python自建模块、第三方库导入import configimport pygameimport requestsimport numpy as npfrom PIL import Image

导入顺序依次为

Python内置模块  -->  Python自建模块  -->  Python第三方库

根据自己的风格,导入的自建模块、Python第三方库少时可以在一起无需换行

导入的自建模块少时可以跟Python内置模块在一起,就是转换成 由短到长 的风格

建议

导入模块代码风格无需照搬照抄地遵循,我们做任何的优化就是为了让代码更好看,结构清晰,无需刻意遵循死规则、烂规则,应该活学活用,创新变化,学习别人优秀的方案,总结出适合自己的。

例如:

假如import 导入语句比 from 导入语句更长,要遵循或者纠结 import 是要在 from 导入语句前面还是由短到长排放呢?

import numpy as npimport multiprocessingfrom PIL import Image
import numpy as npfrom PIL import Imageimport multiprocessing

无需太过纠结、抠字眼,两种导入风格都可以。

Django代码范例

封装html的url网址

渲染 html 页面,把 html 的存放路径总体封装到一个类里面。

class BookView(object):    """图书模块视图类"""    # 图书首页    INDEX_VIEW = 'book/index.html'    # 图书信息页    BOOK_INFO_VIEW = 'book/book_info.html'    # 英雄信息页    HERO_INFO_VIEW = 'book/hero_info.html'# 定义视图函数def index(request):    """    图书首页    """    data = {        'content': 'hello world',        'list': list(range(1, 10)),    }    return render(request, BookView.INDEX_VIEW, data)def show_book(request):    """    展示图书信息界面    """    book_list = BookInfo.objects.all()    data = {        'book': book_list    }    return render(request, BookView.BOOK_INFO_VIEW, data)

封装注册的提示错误信息

返回页面提示的错误信息,统一封装到字典中,提高代码可读性、扩展性。

初始版本

class UserView(object):    """用户模块视图类"""        LOGIN_VIEW = 'user/login.html'    REGISTER_VIEW = 'user/register.html'    USER_CENTER_VIEW = 'user/user_center.html'        def register(request):    username = request.get('username')    passWord = request.get('password')    email = request.get('email')    allow = request.get('allow')        # 校验注册项是否有空值     # all()中有一个为空返回False,都有值则True    if not all([username, password, email]):        return render(request, UserView.REGISTER_VIEW, {'error_msg': '数据不完整'})        # 校验是否勾选(同意)用户协议    if allow != 'on':        return render(request, UserView.REGISTER_VIEW, {'error_msg': '请勾选用户协议'})         # 校验用户名是否重复    try           user = User.object.get(username=username)    except User.DoesNotExists:        user = None         if user:        return render(request, UserView.REGISTER_VIEW, {'error_msg': '该用户已存在'})    return render(request, 'register.html')

可以看到在返回响应数据时代码大致一样,只有提示信息不一样

return render(request, UserView.REGISTER_VIEW, {'error_msg': '数据不完整'})return render(request, UserView.REGISTER_VIEW, {'error_msg': '请勾选用户协议'})return render(request, UserView.REGISTER_VIEW, {'error_msg': '该用户已存在'})

因此封装后的版本

def register(request):    username = request.get('username')    password = request.get('password')    email = request.get('email')    allow = request.get('allow')        error_msg = {        'email_error': '邮箱格式不正确',        'user_exists': '该用户已存在',        'data_error': '数据不完整',        'user_protocol': '请勾选用户协议',    }        # 返回页面的数据    data = dict()        # 校验注册项是否有空值     # all()中有一个为空返回False,都有值则True    if not all([username, password, email]):        data['error_msg'] = error_msg['data_error']        # 校验是否勾选(同意)用户协议    elif allow != 'on':        data['error_msg'] = error_msg['user_protocol']    else:        # 校验用户名是否重复        user = User.object.filter(username=username)                    if user:            data['error_msg'] = error_msg['user_error']        else:            pass            return render(request, UserView.REGISTER_VIEW, data)
# 校验用户名是否重复try   user = User.object.get(username=username)except User.DoesNotExists:    user = None

优化后

User.object.filter(username=username)

get 获取不到数据会报异常,filter则返回一个空的 query_set 查询结果集,去除了 try ... except 异常捕获。让代码结构更清晰。

我们把 if、if.. 改成了 if elif else ,把 render(request, 'register.html', data) 抽到外面去了,并不需要在每一个 if 里面 return 响应。把错误信息封装在 error_msg 字典中,下次想再添加一些错误提示信息或者想修改错误提示信息可以在 error_msg 字典中添加、修改,这样易维护、扩展,也更加明确有哪些错误信息。

关于“Python代码风格与编程习惯的重要性”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: Python代码风格与编程习惯的重要性

本文链接: https://lsjlt.com/news/279025.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python代码风格与编程习惯的重要性
    这篇文章将为大家详细讲解有关Python代码风格与编程习惯的重要性,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Python代码风格首先我们要以 PEP8 代码规范为标准,但也无需完全遵守。例如:一行不能...
    99+
    2023-06-15
  • Python代码风格与编程习惯重要吗?
    Python代码风格 首先我们要以 PEP8 代码规范为标准,但也无需完全遵守。例如:一行不能超过 79 个字符等。 Python模块模板 模块开头指定编码格式 模块文档注释,展示模...
    99+
    2024-04-02
  • 详解c++良好的编程习惯与编程要点
    目录1、以良好的方式编写C++ classHeader(头文件)中的防卫式声明把数据放在private声明下,提供接口访问数据不会改变类属性(数据成员)的成员函数,全部加上const...
    99+
    2024-04-02
  • Python代码一致性的重要性有哪些
    本篇内容主要讲解“Python代码一致性的重要性有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python代码一致性的重要性有哪些”吧!面对歧义,要拒绝猜测的诱惑In the face o...
    99+
    2023-06-15
  • 想要在 Python 中进行编程算法?学习重定向的必要性
    Python 是一种高级编程语言,被广泛用于数据科学和机器学习等领域。它是一种非常灵活的语言,可以用于编写各种类型的应用程序,包括算法。Python 中有许多内置的算法和数据结构,但是在实际开发中,我们经常需要编写自己的算法。在编写算法时...
    99+
    2023-10-22
    重定向 教程 编程算法
  • 不同程序员的Python代码风格有哪些
    这篇文章主要讲解了“不同程序员的Python代码风格有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“不同程序员的Python代码风格有哪些”吧!编程新手...
    99+
    2024-04-02
  • PHP 代码安全:遵循安全编码标准的重要性
    在 php 中,遵循安全编码标准至关重要,以降低代码漏洞风险。标准包括:输入验证和过滤输出编码加密数据使用安全语言功能跟上安全补丁 PHP 代码安全:遵循安全编码标准的重要性 在高度网...
    99+
    2024-05-10
    php 代码安全 mysql 敏感数据 lsp
  • Python 学习笔记:并发编程的必要性?
    Python 是一种高级编程语言,能够进行快速开发和编写,但是在处理大量数据或者高并发的情况下,Python 程序的执行效率会显著下降。这时候,我们需要使用并发编程来提高程序的性能和效率。 什么是并发编程? 并发编程是一种处理多个任务的方...
    99+
    2023-11-13
    学习笔记 关键字 并发
  • 数组重定向的Python编程:如何优化代码性能?
    在Python编程中,数组重定向是一种常见的操作,通常用于对数据进行处理和修改。然而,在处理大量数据时,使用不当的数组重定向方法可能会导致代码性能的大幅下降。因此,为了更好地优化代码性能,我们需要了解正确的数组重定向方法。 本文将介绍Py...
    99+
    2023-07-31
    编程算法 数组 重定向
  • 探索 Python 切面编程的无限可能:提升代码可重用性与可维护性
    ...
    99+
    2024-04-02
  • 大数据时代的ASP网站开发:异步编程的重要性与应用
    随着互联网技术的飞速发展,大数据已经成为了当下的一个热门话题。在这个大数据时代,人们对于数据的处理和分析需求越来越高,因此需要更加高效的数据处理方式。而ASP网站作为一种常见的网站开发技术,也需要不断地更新和改进。 在这篇文章中,我们将会介...
    99+
    2023-11-07
    大数据 异步编程 http
  • 函数重写与模板编程:揭示代码扩展与代码泛化的妙用
    函数重写和模板编程是 c++++ 中用于实现代码扩展和泛化的强大技术。函数重写通过在派生类中重写基类方法来实现扩展;模板编程通过创建可在各种类型中使用的泛型代码来实现泛化。实战案例演示了...
    99+
    2024-05-05
    函数重写 模板编程 c++
  • 你了解 Python 和算法在编程中的重要性吗?
    Python 是一种高级编程语言,已经成为了数据科学、机器学习、人工智能等领域的事实标准。而在编程中,算法是必不可少的组成部分。本文将介绍 Python 和算法在编程中的重要性,并且还将演示一些代码。 Python 在编程中的重要性 Pyt...
    99+
    2023-07-19
    unix 编程算法 laravel
  • 数据类型 load 的重要性:Python 编程算法的关键!
    Python 是一种高级编程语言,它具有高效、易读、易学习等特点,因此在数据分析、机器学习、人工智能等领域被广泛应用。Python 的重要性已经不用多说了,本篇文章主要讨论 Python 编程算法中一个重要的概念:数据类型 load。 数...
    99+
    2023-07-09
    编程算法 数据类型 load
  • python代码防御性编程的技巧有哪些
    本篇内容主要讲解“python代码防御性编程的技巧有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python代码防御性编程的技巧有哪些”吧!1 什么是防御...
    99+
    2024-04-02
  • 阿里云服务器的设置密码 过程与重要性
    阿里云服务器是阿里巴巴旗下的云计算服务,它提供了一系列的计算、存储和网络服务,可以满足不同业务的需求。而在使用阿里云服务器的过程中,设置密码是必不可少的一步,它能够保护服务器的资源不被非法访问。本文将详细介绍如何设置阿里云服务器的密码,以及...
    99+
    2023-11-03
    阿里 重要性 密码
  • Golang继承方法:改善代码可维护性与扩展性的重要工具
    Golang继承方法:提升代码可维护性与扩展性的利器 引言: Golang是一种快速、简洁、高效的编程语言,它的设计注重代码的可读性和维护性。在Golang中,继承是一种重要的设计模式,可以通过继承方法来有效...
    99+
    2024-01-20
    继承 扩展性 代码可维护性
  • Python 多线程与多进程:揭秘并发编程的奥秘,提升代码性能
    多线程和多进程是并发编程的两种主要方式,它们都可以让程序同时执行多个任务,从而提高程序的性能。然而,它们之间也存在着一些差异,了解这些差异对于选择正确的方法非常重要。 多线程 多线程是指在一个进程中创建多个线程,这些线程共享相同的内存空...
    99+
    2024-02-24
    Python 多线程 多进程 并发编程 性能提升
  • 批处理与python代码混合编程的方法
    批处理可以很方便地和其它各种语言混合编程,除了好玩,还有相当的实用价值,比如windows版的ruby gem包管理器就是运用了批处理和ruby的混合编写,bathome出品的命令工具包管理器bcn 使用了...
    99+
    2022-06-04
    批处理 代码 方法
  • 面试中Linux环境下Java并发编程的重要性与技巧。
    在当今互联网技术的快速发展中,Java作为一种广泛使用的编程语言,其并发编程能力也日益受到重视。在Linux环境下进行Java并发编程,可以充分利用Linux系统的多线程、多进程等优势,提高程序的运行效率和并发处理能力。本文将从Java并发...
    99+
    2023-06-24
    linux 面试 并发
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作