当前位置: 首页 > wzjs >正文

网站开发项目成本分析之合理性网络营销的策划流程

网站开发项目成本分析之合理性,网络营销的策划流程,做旅游网站怎么样,开发手机网站用什么好处文章目录 1. Google 风格 Docstring 的核心特点2. Google 风格的基本结构3. 编写规则和注意事项4. 最常用的 Google 风格 Docstring 示例示例 1:普通函数 示例 2:带默认参数和可变参数的函数示例 3:类示例 4:生成器函数示例 5&…

文章目录

    • 1. Google 风格 Docstring 的核心特点
    • 2. Google 风格的基本结构
    • 3. 编写规则和注意事项
    • 4. 最常用的 Google 风格 Docstring 示例
        • 示例 1:普通函数
      • 示例 2:带默认参数和可变参数的函数
      • 示例 3:类
      • 示例 4:生成器函数
      • 示例 5:模块级 Docstring
    • 5. 高级用法和扩展
    • 6. 常见错误和如何避免
    • 7. 为什么选择 Google 风格
      • 8. 总结

Google 风格的 Python Docstring 是一种广泛使用的文档字符串格式,旨在以清晰、简洁的方式描述 Python 代码的功能、参数、返回值等信息。它由 Google 提出,定义在 Google Python Style Guide 中,因其结构化、可读性强且易于解析,受到许多开发者和项目的青睐(如 TensorFlow、Google Cloud 等)。Google 风格 Docstring 使用三引号( """''')定义,遵循特定结构,适合手动阅读和自动文档生成工具(如 Sphinx)。

以下是对 Google 风格 Docstring 的全面讲解,包括其结构、规则、常用场景、注意事项,以及最常用的几个示例。


1. Google 风格 Docstring 的核心特点

  • 结构化:采用固定的标题(如 ArgsReturnsRaises 等)来组织信息,便于快速查找。
  • 简洁但详尽:描述应清晰,避免冗长,重点突出函数或类的用途、输入输出及可能的异常。
  • 人类可读:优先考虑开发者的阅读体验,同时支持工具解析。
  • 灵活性:适用于函数、方法、类、模块等多种代码单元。
  • 与类型提示结合:虽然 Google 风格允许在 Args 中指定参数类型,但现代 Python 更推荐使用类型提示(type hints),Docstring 则专注于描述参数的含义。

2. Google 风格的基本结构

Google 风格 Docstring 通常包括以下部分(按需选择):

  1. 顶层描述

    • 函数、类或模块的简要概述,说明其主要功能或目的。
    • 通常是一两句话,放在 Docstring 开头。
  2. Args

    • 列出所有参数及其描述。
    • 格式为:参数名 (类型): 描述
    • 如果参数有默认值或特殊约束,应在描述中说明。
    • 对于 *args**kwargs,需要说明它们的用途。
  3. Returns

    • 描述函数的返回值及其类型。
    • 格式为:(类型): 描述
    • 如果函数返回多个值(如元组),需要说明每个部分的含义。
  4. Yields(生成器函数):

    • 对于生成器函数,描述每次 yield 的值及其类型。
    • 格式与 Returns 类似。
  5. Raises

    • 列出函数可能抛出的异常及其触发条件。
    • 格式为:异常类型: 描述
  6. Attributes(类或模块):

    • 描述类或模块的公共属性(变量)。
    • 格式为:属性名 (类型): 描述
  7. Examples(可选):

    • 提供使用示例,展示函数或类的典型用法。
    • 通常以代码块形式(缩进)编写。
  8. Note(可选):

    • 提供额外信息,如实现细节、性能考虑或警告。
  9. See Also(可选):

    • 指向相关的函数、类或外部资源。

3. 编写规则和注意事项

  • 缩进:Docstring 内容应与三引号的缩进对齐,通常为 4 个空格。
  • 空行
    • 顶层描述与后续部分(如 Args)之间加一个空行。
    • 每个部分(如 ArgsReturns)之间不需要空行,除非内容复杂。
  • 参数描述
    • 参数名后跟类型(括号包裹),类型后跟冒号和描述。
    • 描述以大写字母开头,句号结尾,保持完整句子。
    • 如果参数是可选的或有默认值,需在描述中说明。
  • 类型信息
    • 虽然可以在 Docstring 中指定类型,但推荐使用 Python 的类型提示(def func(x: int)),Docstring 仅描述含义。
    • 如果未使用类型提示,Docstring 中的类型描述尤为重要。
  • 一致性
    • 项目中应统一风格,避免混用不同 Docstring 格式。
    • 对于复杂项目,建议结合 Sphinx 等工具生成文档。
  • 避免冗余
    • 如果函数名或参数名已经足够自描述,Docstring 应避免重复信息。
    • 例如,def get_name() -> str 不需要过多描述返回值。

4. 最常用的 Google 风格 Docstring 示例

以下是最常见的几种场景,展示了 Google 风格 Docstring 的实际应用,涵盖函数、类、模块和生成器等。

示例 1:普通函数
def calculate_area(length: float, width: float) -> float:"""Calculate the area of a rectangle.Args:length (float): The length of the rectangle in meters.width (float): The width of the rectangle in meters.Returns:float: The area of the rectangle in square meters.Raises:ValueError: If length or width is negative."""if length < 0 or width < 0:raise ValueError("Length and width must be non-negative.")return length * width

说明

  • 顶层描述简洁,说明函数用途。
  • Args 列出参数,类型明确,描述含义。
  • Returns 指定返回值类型和单位。
  • Raises 说明异常情况。

示例 2:带默认参数和可变参数的函数

def send_message(recipient: str, message: str, priority: str = "normal", *args, **kwargs) -> bool:"""Send a message to a recipient with optional priority and metadata.Args:recipient (str): The email address of the recipient.message (str): The content of the message.priority (str): The priority level of the message. Defaults to "normal".*args: Additional positional arguments for message formatting.**kwargs: Additional metadata for the message (e.g., sender, timestamp).Returns:bool: True if the message was sent successfully, False otherwise.Examples:>>> send_message("user@example.com", "Hello!", priority="high", sender="admin")True"""# 实现代码省略return True

说明

  • 处理默认参数(priority)和可变参数(*args**kwargs)。
  • Examples 展示典型用法。
  • 返回值类型简单,描述清晰。

示例 3:类

class DatabaseConnection:"""A class to manage database connections.Args:host (str): The database host address.port (int): The database port number.username (str): The username for authentication.password (str): The password for authentication.Attributes:connection (Connection): The active database connection object.is_connected (bool): Whether the connection is currently active.Raises:ConnectionError: If the connection cannot be established."""def __init__(self, host: str, port: int, username: str, password: str):self.host = hostself.port = portself.username = usernameself.password = passwordself.connection = Noneself.is_connected = False# 连接逻辑省略def query(self, sql: str) -> list:"""Execute a SQL query and return results.Args:sql (str): The SQL query string.Returns:list: The query results as a list of rows."""# 查询逻辑省略return []

说明

  • 类级 Docstring 描述类功能,包含构造参数(__init__ 的参数)和属性。
  • 方法级 Docstring 描述具体方法。
  • Attributes 列出类的重要属性。

示例 4:生成器函数

def fibonacci(n: int) -> Iterator[int]:"""Generate the first n Fibonacci numbers.Args:n (int): The number of Fibonacci numbers to generate.Yields:int: The next Fibonacci number in the sequence.Raises:ValueError: If n is negative."""if n < 0:raise ValueError("n must be non-negative.")a, b = 0, 1for _ in range(n):yield aa, b = b, a + b

说明

  • 使用 Yields 描述生成器的每次返回值。
  • 异常情况明确说明。

示例 5:模块级 Docstring

"""A module for handling file operations.This module provides utilities for reading, writing, and managing files.Attributes:DEFAULT_ENCODING (str): The default file encoding, set to 'utf-8'.Functions:read_file: Read the contents of a file.write_file: Write content to a file.
"""
DEFAULT_ENCODING = "utf-8"def read_file(file_path: str) -> str:"""Read the contents of a file.Args:file_path (str): The path to the file.Returns:str: The contents of the file.Raises:FileNotFoundError: If the file does not exist."""with open(file_path, "r", encoding=DEFAULT_ENCODING) as f:return f.read()

说明

  • 模块级 Docstring 描述模块的整体功能和内容。
  • 使用 AttributesFunctions 列出模块的公共接口。
  • 函数级 Docstring 保持一致风格。

5. 高级用法和扩展

  • 复杂参数

    • 如果参数是复杂对象(如字典或自定义类),可以在 Args 中详细描述其结构。
    • 示例:
      def process_config(config: dict) -> None:"""Process a configuration dictionary.Args:config (dict): A dictionary with configuration settings.Expected keys:- 'host' (str): The server host.- 'port' (int): The server port.- 'timeout' (float, optional): Connection timeout in seconds."""# 实现省略pass
      
  • 多行描述

    • 如果参数或返回值的描述较长,可以换行,但保持缩进对齐。
    • 示例:
      def fetch_data(url: str) -> dict:"""Fetch data from a remote API.Args:url (str): The API endpoint URL. Must be a valid HTTPS URLstarting with 'https://' and include necessary query parameters.Returns:dict: The parsed JSON response from the API, containingthe requested data or an error message."""# 实现省略return {}
      
  • 与 Sphinx 集成

    • Google 风格 Docstring 可通过 sphinx.ext.napoleon 扩展直接解析,生成 HTML 或 PDF 文档。
    • 需要在 Sphinx 配置文件中启用 napoleon
      extensions = ['sphinx.ext.napoleon']
      napoleon_google_docstring = True
      

6. 常见错误和如何避免

  • 不一致的类型信息

    • 如果使用类型提示,确保 Docstring 中的类型与注解一致。
    • 错误示例:
      def func(x: int) -> str:"""Args: x (float): A number."""return str(x)
      
    • 修正:将 Docstring 中的 float 改为 int
  • 缺少必要部分

    • 如果函数有返回值但未写 Returns,或抛出异常但未写 Raises,可能导致文档不完整。
    • 解决:检查函数逻辑,确保所有可能的情况都描述。
  • 过于冗长

    • 避免在 Docstring 中重复代码逻辑或写不必要的细节。
    • 错误示例:
      def add(a: int, b: int) -> int:"""Add a and b. This function takes a, adds b to it, and returns the result."""return a + b
      
    • 修正:简化为 "Add two numbers."

7. 为什么选择 Google 风格

  • 易读性:结构清晰,标题明确,适合快速浏览。
  • 社区支持:许多开源项目(如 TensorFlow)使用 Google 风格,开发者熟悉度高。
  • 工具兼容:与 Sphinx、PyCharm 等工具无缝集成,支持文档生成和代码补全。
  • 灵活性:适用于各种规模的项目,从小型脚本到大型框架。

8. 总结

Google 风格 Docstring 是 Python 中一种强大的文档工具,通过结构化的 ArgsReturnsRaises 等部分,提供清晰的代码描述。它适合需要高可读性和文档生成的项目,尤其在团队协作和开源项目中。开发者应结合类型提示,遵循项目一致性,并在复杂场景下补充 ExamplesNote 等部分。

http://www.dtcms.com/wzjs/190870.html

相关文章:

  • 建立站点的作用搜索引擎优化排名seo
  • 2021免费正能量网站百度的网站
  • 做医院网站及微信公众号价格快速排名工具免费查询
  • 网站开发的心得体会广告投放数据分析
  • 三门峡网站开发小红书信息流广告
  • 庆阳北京网站建设电商运营基础知识
  • 什么网站需要icp备案近期舆情热点事件
  • 牛商网招聘重庆黄埔seo整站优化
  • 赌博游戏网站怎么做免费企业黄页查询官网
  • 昆山做网站的公司有哪些目前疫情最新情况
  • 怎样做旅游城市住宿网站杭州seo靠谱
  • 设计师网站知乎360排名优化工具
  • 施工企业三大体系认证提升seo搜索排名
  • 公司网站建设费计入哪个科目软文是啥意思
  • 自己做自己的私人网站seo网站优化方
  • 带seo服务的网站定制网络广告文案案例
  • 广西住房和城乡建设培训中心网站网络推广的公司是骗局吗
  • 上海网站设计网页设计安卓优化大师清理
  • 网站logo尺寸一般多大线上职业技能培训平台
  • 网站目录结构设计应注意的问题排名优化seo
  • 中国建设银行信用卡网站seo培训学院
  • 许昌做网站公司360推广和百度推广哪个好
  • h3c路由器怎么做网站映射免费的网站域名查询app
  • 腾讯云怎么建网站关键词优化排名平台
  • wordpress 引用视频宁波关键词优化企业网站建设
  • 专门做免费东西试吃的网站seo什么意思简单来说
  • 做徽商要做网站吗百度推广和优化哪个好
  • 网站的建设进入哪个科目网站建设流程是什么
  • 网站建设的cms系统国外域名注册平台
  • 网站建设课题简介他达拉非功效与作用主要会有哪些