首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
第 10章 编写高效的函数
10.1 函数名
10.2 函数大小的权衡
10.3 函数的形参和实参
10.3.1 默认参数
10.3.2 使用*和**向函数传参
10.3.3 使用*创建可变参数函数
10.3.4 使用**创建可变参数函数
10.3.5 使用*和**创建包装函数
10.4 函数式编程
10.4.1 副作用
10.4.2 高阶函数
10.4.3 lambda 函数
10.4.4 在列表推导式中进行映射和过滤
10.5 返回值的数据类型应该不变
10.6 抛出异常和返回错误码
第 11章 注释、文档字符串和类型提示
11.1 注释
11.1.1 注释风格
11.1.2 内联注释
11.1.3 说明性的注释
11.1.4 总结性的注释
11.1.5 “经验之谈”的注释
11.1.6 法律注释
11.1.7 注释的专业性
11.1.8 代码标签和TODO 注释
11.1.9 神奇的注释和源文件编码
11.2 文档字符串
11.3 类型提示
11.3.1 使用静态分析器
11.3.2 为多种类型设置类型提示
11.3.3 为列表、字典等设置类型提示
11.3.4 通过注释向后移植类型提示
第 12章 通过Git管理项目
12.1 Git 提交和仓库
12.2 使用Cookiecutter新建Python项目
12.3 安装Git
12.3.1 配置Git 用户名和电子邮件
12.3.2 安装GUI Git 工具
12.4 Git 的工作流程
12.4.1 Git 是如何追踪文件状态的
12.4.2 为什么要暂存文件
12.5 在计算机上创建Git 仓库
12.5.1 添加供Git 追踪的文件
12.5.2 忽略仓库中的文件
12.5.3 提交修改
12.5.4 从仓库中删除文件
12.5.5 重命名和移动仓库中的文件
12.6 查看提交日志
12.7 恢复历史修改
12.7.1 撤销未提交的本地修改
12.7.2 取消暂存的文件
12.7.3 回滚近期的提交
12.7.4 回滚到单个文件的某次提交
12.7.5 重写提交历史
12.8 GitHub 和git推送命令
12.8.1 将一个已存在的仓库推送到GitHub
12.8.2 克隆已存在的GitHub仓库
当前位置:
首页>>
技术小册>>
Python编程轻松进阶(四)
小册名称:Python编程轻松进阶(四)
### 第11章 注释、文档字符串和类型提示 在Python编程的旅途中,代码的可读性、可维护性以及团队协作的效率是至关重要的。为了实现这一目标,Python提供了多种工具来帮助开发者更好地组织和理解代码,其中注释、文档字符串(Docstrings)和类型提示(Type Hints)是最为关键的三大要素。本章将深入探讨这三者的作用、语法规则以及最佳实践,旨在帮助读者在Python编程的进阶之路上迈出坚实的一步。 #### 11.1 注释:代码的隐形助手 ##### 11.1.1 注释的定义与目的 注释是程序员在代码中添加的不会被Python解释器执行的部分,它们以特定方式标记,用于向阅读代码的人(包括未来的自己)解释代码的功能、目的或复杂逻辑。注释是提升代码可读性的重要手段,有助于团队成员之间的理解和协作。 ##### 11.1.2 注释的语法 在Python中,单行注释以井号`#`开头,井号之后的内容直到行尾都被视为注释。例如: ```python # 这是一个单行注释 x = 5 # 这也是注释,紧跟在代码后面 # 多行注释在Python中没有专门的语法,但可以使用三个单引号或三个双引号 ''' 这是一个多行注释 可以跨越多行 用于说明复杂的逻辑或代码块 ''' """ 和三个单引号一样,三个双引号也可以用来写多行注释 但通常,当多行字符串用作文档字符串时,更倾向于使用三个双引号 """ ``` ##### 11.1.3 注释的最佳实践 - **说明而非解释**:注释应解释代码的目的或为什么采取某种实现方式,而不是简单重复代码的功能。 - **保持更新**:当代码变更时,相应的注释也应及时更新,以避免误导。 - **适量使用**:避免过多无意义的注释,它们可能会使代码显得杂乱无章。 - **使用文档字符串**:对于函数、类和模块,使用文档字符串来提供详细的说明。 #### 11.2 文档字符串:函数的说明书 ##### 11.2.1 文档字符串的定义 文档字符串(Docstrings)是Python中一种特殊的注释形式,它位于函数、类、模块或包定义的第一行,使用三个双引号`"""`或三个单引号`'''`包围。文档字符串的目的是为这些代码对象提供详细的说明文档,包括其功能、参数、返回值以及可能抛出的异常等。 ##### 11.2.2 文档字符串的语法 文档字符串的语法相对自由,但遵循一定的约定可以使其更加标准化和易于被工具解析。例如,对于函数,文档字符串可以包含函数的描述、参数列表、返回值以及可能的异常等信息: ```python def greet(name, age=None): """ 向某人打招呼。 Args: name (str): 被打招呼人的名字。 age (int, optional): 被打招呼人的年龄,默认为None。 Returns: str: 打招呼的字符串。 Examples: >>> greet("Alice") 'Hello, Alice!' >>> greet("Bob", 30) 'Hello, Bob! You are 30 years old.' """ if age is not None: return f'Hello, {name}! You are {age} years old.' else: return f'Hello, {name}!' ``` ##### 11.2.3 文档字符串的工具支持 Python的许多编辑器和IDE(如PyCharm、VS Code等)都支持从文档字符串中自动生成文档网页或帮助信息。此外,像Sphinx这样的工具能够读取文档字符串,并生成格式化的文档网站,极大地促进了代码的文档化工作。 #### 11.3 类型提示:静态类型检查的力量 ##### 11.3.1 类型提示的引入 虽然Python是一种动态类型语言,但自Python 3.5起,引入了类型提示(Type Hints)作为PEP 484的一部分,允许开发者为变量、函数参数和返回值等指定类型信息。类型提示是可选的,不会改变Python的运行时行为,但可以被静态类型检查工具(如mypy)用来发现潜在的错误。 ##### 11.3.2 类型提示的语法 在变量、函数参数或返回值后添加冒号和类型名来指定类型。对于复杂类型,可以使用标准库`typing`中的类型别名或高级类型构造(如Union、List、Dict等): ```python from typing import List, Union def calculate_area(shape: Union[str, int, float], dimensions: List[float]) -> float: """ 计算形状的面积。 Args: shape (Union[str, int, float]): 形状的类型或标识符。 dimensions (List[float]): 形状的尺寸列表。 Returns: float: 形状的面积。 Raises: ValueError: 如果shape或dimensions不符合预期。 """ # 示例实现,根据shape和dimensions计算面积 # ... pass # 使用类型提示的变量 x: int = 5 ``` ##### 11.3.3 类型提示的益处 - **提高代码质量**:通过静态类型检查,可以在运行前发现并修正潜在的错误。 - **增强代码可读性**:类型提示为阅读代码的人提供了额外的上下文信息,有助于理解代码的功能和预期的使用方式。 - **促进团队协作**:明确的类型信息有助于团队成员之间的沟通和协作,减少误解和错误。 #### 11.4 最佳实践与总结 - **综合运用**:在编写代码时,应根据需要综合运用注释、文档字符串和类型提示,以提高代码的可读性、可维护性和健壮性。 - **一致性**:在团队项目中,应制定统一的注释、文档字符串和类型提示的编写规范,并保持一致性。 - **定期回顾**:随着项目的进展,应定期回顾和更新注释、文档字符串,确保它们与代码的最新状态保持一致。 - **工具辅助**:利用Python社区提供的各种工具和库(如mypy、Sphinx等)来辅助文档的编写和类型检查,提高开发效率。 通过本章的学习,我们深入了解了Python中注释、文档字符串和类型提示的作用、语法规则以及最佳实践。这些工具不仅能够帮助我们编写出更加清晰、健壮的代码,还能够促进团队成员之间的理解和协作,是Python编程进阶之路上不可或缺的重要组成部分。
上一篇:
10.6 抛出异常和返回错误码
下一篇:
11.1 注释
该分类下的相关小册推荐:
Python合辑2-字符串常用方法
Python与办公-玩转PDF
Python合辑8-变量和运算符
Python编程轻松进阶(三)
机器学习算法原理与实战
Python合辑5-格式化字符串
Python面试指南
Python合辑11-闭包函数
Python与办公-玩转Excel
Python编程轻松进阶(一)
Python合辑14-面向对象编程案例(下)
Python3网络爬虫开发实战(下)