0

0

如何用 Python 编写干净的代码 - 最佳实践指南

WBOY

WBOY

发布时间:2024-09-07 20:57:01

|

1300人浏览过

|

来源于dev.to

转载

如何用 python 编写干净的代码 - 最佳实践指南

编写 python 代码时,必须使其干净且易于阅读。干净的代码意味着您的代码组织良好、易于理解且易于维护。在本指南中,我们将分享最佳技巧,帮助您用 python 编写干净的代码,无论您是初学者还是经验丰富的开发人员。

为什么干净的代码很重要

编写干净的代码至关重要,原因有很多:

  • 可读性:干净的代码易于阅读,这有助于其他开发人员快速理解您的代码。
  • 可维护性:如果您的代码干净,则更容易更新、调试和改进。
  • 协作:干净的代码对于团队合作至关重要,尤其是在与他人共享代码或处理大型项目时。
  • 错误预防:当你的代码干净且有组织时,你就不太可能引入错误。 现在,让我们探索一些最佳实践,帮助您用 python 编写更简洁的代码。

1.使用有意义的变量和函数名称

提高代码可读性的最简单方法之一是为变量和函数使用清晰且有意义的名称。避免使用单字母或神秘的名称,例如 x、y 或 foo。

示例

稿定AI绘图
稿定AI绘图

稿定推出的AI绘画工具

下载
# bad example
def calc(x, y):
    return x + y

# good example
def calculate_total_price(item_price, tax):
    return item_price + tax

在第二个例子中,只需查看函数名和变量名就很容易理解函数的作用。

立即学习Python免费学习笔记(深入)”;

2.遵循 pep 8 风格指南

pep 8 是 python 的官方风格指南,提供了编写干净且可读的代码的约定。一些关键的 pep 8 建议包括:

  • 缩进:每个缩进级别使用 4 个空格。
  • 行长度:保持行少于 79 个字符。
  • 空格:在运算符周围和逗号后使用空格。
  • 注释:添加注释来解释代码的复杂部分。 遵循 pep 8 可确保您的代码符合 python 的社区标准。

示例

# pep 8 example
def calculate_discounted_price(price, discount):
    """calculate the final price after applying the discount."""
    discounted_amount = price * (discount / 100)
    final_price = price - discounted_amount
    return final_price

3. 编写模块化代码

将代码分解为更小的、可管理的函数。每个函数应该执行一项特定任务,使其更易于阅读、测试和调试。

示例

# bad example
def process_order(customer, items):
    total_price = 0
    for item in items:
        total_price += item['price']
    if total_price > 100:
        discount = total_price * 0.1
        total_price -= discount
    # send email
    print(f"order confirmed for {customer['name']}")
    return total_price

# good example
def calculate_total_price(items):
    return sum(item['price'] for item in items)

def apply_discount(total_price):
    if total_price > 100:
        return total_price * 0.9
    return total_price

def send_confirmation_email(customer):
    print(f"order confirmed for {customer['name']}")

def process_order(customer, items):
    total_price = calculate_total_price(items)
    total_price = apply_discount(total_price)
    send_confirmation_email(customer)
    return total_price

在改进的示例中,代码被拆分为更小的函数,使其更易于理解和维护。

4. 使用列表推导式来简化

python 中的列表推导式提供了一种创建列表的简洁方法。使用它们可以使您的代码更干净、更具可读性。

示例

# without list comprehension
squares = []
for x in range(10):
    squares.append(x ** 2)

# with list comprehension
squares = [x ** 2 for x in range(10)]

第二个示例更短且更易于阅读。

5.避免硬编码值

避免直接在代码中对值进行硬编码。相反,请使用常量或配置文件。这使您的代码更加灵活且更易于更新。

示例

# bad example
def calculate_discount(price):
    return price * 0.1  # discount is hardcoded

# good example
discount_rate = 0.1

def calculate_discount(price):
    return price * discount_rate

在第二个示例中,折扣率存储在常量中,以便在需要时更容易更改。

6. 添加注释和文档字符串

虽然干净的代码应该是不言自明的,但添加注释和文档字符串可以帮助解释复杂函数或算法的目的。

  • 评论:解释为什么使用特定方法。
  • docstrings:描述函数的作用及其参数。 示例
def find_largest_number(numbers):
    """
    find the largest number in a list.

    args:
    numbers (list): a list of numbers.

    returns:
    int: the largest number.
    """
    return max(numbers)

文档字符串可帮助其他开发人员了解如何使用该函数,而无需阅读整个代码。

7. 保持代码干燥(不要重复)

避免重复代码。如果您发现重复的模式,请尝试重构代码以重用函数或类。这将使您的代码更易于维护并减少出错的机会。

示例

# bad example
def get_full_name1(first_name, last_name):
    return first_name + " " + last_name

def get_full_name2(first_name, last_name):
    return first_name + " " + last_name

# good example
def get_full_name(first_name, last_name):
    return first_name + " " + last_name

8. 优雅地处理错误

始终使用 try 和 except 块来处理异常,以防止程序崩溃。您还应该提供信息丰富的错误消息以使调试更容易。

示例

# bad example
def divide_numbers(a, b):
    return a / b

# good example
def divide_numbers(a, b):
    try:
        return a / b
    except zerodivisionerror:
        return "error: cannot divide by zero"

第二个示例可防止崩溃并提供有用的错误消息。

9. 使用 f 字符串进行格式化

python 3.6 引入了 f-string,这是一种简单易读的字符串格式设置方法。它们比旧的字符串格式化方法干净得多。

示例

# old way
name = "alice"
greeting = "hello, %s!" % name

# with f-strings
greeting = f"hello, {name}!"

f 字符串使您的代码更易于阅读和维护。

10.使用有意义的导入

仅导入必要的模块和功能。避免使用通配符导入,例如 from module import *,因为它们会使命名空间变得混乱并使跟踪依赖项变得更加困难。

示例

# Bad example
from math import *

# Good example
from math import sqrt, pi

结论

用 python 编写干净的代码是一项宝贵的技能,可以帮助您创建可读、可维护且无错误的软件。通过遵循本指南中概述的最佳实践(使用有意义的名称、遵循 pep 8、保持代码模块化以及优雅地处理错误),您可以显着改善您的编码风格。

专注于可读性、简单性和一致性,您将能够顺利编写干净、专业的 python 代码。

相关专题

更多
python开发工具
python开发工具

php中文网为大家提供各种python开发工具,好的开发工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。php中文网还为大家带来python相关课程以及相关文章等内容,供大家免费下载使用。

715

2023.06.15

python打包成可执行文件
python打包成可执行文件

本专题为大家带来python打包成可执行文件相关的文章,大家可以免费的下载体验。

625

2023.07.20

python能做什么
python能做什么

python能做的有:可用于开发基于控制台的应用程序、多媒体部分开发、用于开发基于Web的应用程序、使用python处理数据、系统编程等等。本专题为大家提供python相关的各种文章、以及下载和课程。

739

2023.07.25

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

617

2023.07.31

python教程
python教程

Python已成为一门网红语言,即使是在非编程开发者当中,也掀起了一股学习的热潮。本专题为大家带来python教程的相关文章,大家可以免费体验学习。

1235

2023.08.03

python环境变量的配置
python环境变量的配置

Python是一种流行的编程语言,被广泛用于软件开发、数据分析和科学计算等领域。在安装Python之后,我们需要配置环境变量,以便在任何位置都能够访问Python的可执行文件。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

547

2023.08.04

python eval
python eval

eval函数是Python中一个非常强大的函数,它可以将字符串作为Python代码进行执行,实现动态编程的效果。然而,由于其潜在的安全风险和性能问题,需要谨慎使用。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

575

2023.08.04

scratch和python区别
scratch和python区别

scratch和python的区别:1、scratch是一种专为初学者设计的图形化编程语言,python是一种文本编程语言;2、scratch使用的是基于积木的编程语法,python采用更加传统的文本编程语法等等。本专题为大家提供scratch和python相关的文章、下载、课程内容,供大家免费下载体验。

698

2023.08.11

php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

3

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 0.6万人学习

Django 教程
Django 教程

共28课时 | 2.6万人学习

SciPy 教程
SciPy 教程

共10课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号