Python中docstring(文檔字符串)用法示例詳解
在Python中,docstring(文檔字符串)是用來(lái)為模塊、類(lèi)、方法、函數(shù)等提供文檔的一種方式。它是一個(gè)字符串字面量,出現(xiàn)在模塊、類(lèi)、函數(shù)或方法的定義的第一條語(yǔ)句。通過(guò)使用docstring,我們可以為代碼添加描述性的文檔,這些文檔可以通過(guò)內(nèi)置的help()函數(shù)或者各種文檔生成工具(如Sphinx)來(lái)查看。
下面是一個(gè)簡(jiǎn)單的例子,展示如何在函數(shù)中使用docstring:
def add(a, b):
"""
計(jì)算兩個(gè)數(shù)的和
參數(shù):
a (int): 第一個(gè)加數(shù)
b (int): 第二個(gè)加數(shù)
返回:
int: 兩個(gè)加數(shù)的和
"""
return a + b
然后,我們可以通過(guò)以下方式查看這個(gè)函數(shù)的文檔:
使用help()函數(shù):在Python交互環(huán)境中,輸入help(add),就會(huì)顯示這個(gè)函數(shù)的文檔字符串。
使用__doc__屬性:直接打印add.doc,也會(huì)輸出同樣的文檔字符串。
例如:
print(help(add)) # 或者 print(add.__doc__)
docstring的格式可以有很多種,常見(jiàn)的包括純文本、reStructuredText(reST)和Google風(fēng)格等。上面例子中使用的是比較常見(jiàn)的格式,類(lèi)似于Google風(fēng)格。
使用docstring的好處是:
代碼和文檔在一起,容易維護(hù)。
可以通過(guò)工具自動(dòng)生成文檔。
方便其他開(kāi)發(fā)者理解你的代碼。
在編寫(xiě)大型項(xiàng)目時(shí),良好的docstring是非常重要的。
在Python中,docstring(文檔字符串)是一種特殊的字符串,用于為模塊、函數(shù)、類(lèi)和方法提供文檔說(shuō)明。它位于定義的第一行,用三個(gè)雙引號(hào) """ 或三個(gè)單引號(hào) ''' 包裹。
基本用法
1. 函數(shù)文檔字符串
def add(a, b):
"""
計(jì)算兩個(gè)數(shù)的和
參數(shù):
a (int): 第一個(gè)數(shù)字
b (int): 第二個(gè)數(shù)字
返回:
int: 兩個(gè)數(shù)字的和
示例:
>>> add(2, 3)
5
>>> add(-1, 1)
0
"""
return a + b
2. 類(lèi)文檔字符串
class Calculator:
"""
一個(gè)簡(jiǎn)單的計(jì)算器類(lèi)
屬性:
brand (str): 計(jì)算器品牌
方法:
add: 加法運(yùn)算
subtract: 減法運(yùn)算
"""
def __init__(self, brand):
self.brand = brand
def multiply(self, a, b):
"""返回兩個(gè)數(shù)的乘積"""
return a * b
查看文檔字符串
1. 使用help()函數(shù)
help(add) # 或者 help(Calculator)
2. 使用__doc__屬性
print(add.__doc__) print(Calculator.__doc__)
3. 在交互式環(huán)境中
# 在IPython或Jupyter中 add? # 或者 add??
常見(jiàn)的文檔字符串格式
1. Google風(fēng)格
def calculate_area(radius):
"""
計(jì)算圓的面積
Args:
radius (float): 圓的半徑
Returns:
float: 圓的面積
Raises:
ValueError: 當(dāng)半徑為負(fù)數(shù)時(shí)
Example:
>>> calculate_area(5)
78.53981633974483
"""
if radius < 0:
raise ValueError("半徑不能為負(fù)數(shù)")
return 3.141592653589793 * radius ** 2
2. NumPy風(fēng)格
def calculate_area(radius):
"""
計(jì)算圓的面積
Parameters
----------
radius : float
圓的半徑
Returns
-------
float
圓的面積
Examples
--------
>>> calculate_area(5)
78.53981633974483
"""
return 3.141592653589793 * radius ** 2
模塊級(jí)別的文檔字符串
"""
math_utils.py
這個(gè)模塊提供了一些數(shù)學(xué)工具函數(shù)。
包含的功能:
- 基本算術(shù)運(yùn)算
- 幾何計(jì)算
- 統(tǒng)計(jì)函數(shù)
作者: Your Name
版本: 1.0
"""
def average(numbers):
"""計(jì)算數(shù)字列表的平均值"""
return sum(numbers) / len(numbers)
實(shí)際示例
class BankAccount:
"""
銀行賬戶類(lèi)
屬性:
account_holder (str): 賬戶持有人姓名
balance (float): 賬戶余額
account_number (str): 賬戶號(hào)碼
方法:
deposit: 存款
withdraw: 取款
get_balance: 查詢余額
"""
def __init__(self, account_holder, initial_balance=0):
"""
初始化銀行賬戶
Args:
account_holder (str): 賬戶持有人姓名
initial_balance (float, optional): 初始余額,默認(rèn)為0
"""
self.account_holder = account_holder
self.balance = initial_balance
self.account_number = self._generate_account_number()
def deposit(self, amount):
"""
存款操作
Args:
amount (float): 存款金額
Returns:
float: 更新后的余額
Raises:
ValueError: 當(dāng)存款金額為負(fù)數(shù)時(shí)
"""
if amount <= 0:
raise ValueError("存款金額必須為正數(shù)")
self.balance += amount
return self.balance
def withdraw(self, amount):
"""
取款操作
Args:
amount (float): 取款金額
Returns:
float: 更新后的余額
Raises:
ValueError: 當(dāng)取款金額為負(fù)數(shù)或超過(guò)余額時(shí)
"""
if amount <= 0:
raise ValueError("取款金額必須為正數(shù)")
if amount > self.balance:
raise ValueError("余額不足")
self.balance -= amount
return self.balance
# 使用幫助文檔
help(BankAccount)
help(BankAccount.deposit)
總結(jié)
通過(guò)docstring添加幫助文檔的主要好處:
- 自我文檔化:代碼和文檔在一起,便于維護(hù)
- 交互式幫助:在Python解釋器中可以直接查看
- 自動(dòng)化文檔:可以被Sphinx等工具自動(dòng)提取生成API文檔
- 代碼可讀性:讓其他開(kāi)發(fā)者更容易理解你的代碼
- IDE支持:大多數(shù)IDE可以顯示docstring作為提示
這是Python生態(tài)系統(tǒng)中的一個(gè)重要約定,強(qiáng)烈建議為所有公共接口添加適當(dāng)?shù)膁ocstring。
到此這篇關(guān)于Python中docstring(文檔字符串)用法示例詳解的文章就介紹到這了,更多相關(guān)Python docstring用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用嵌套循環(huán)實(shí)現(xiàn)圖像處理算法
這篇文章主要給大家詳細(xì)介紹Python如何使用嵌套循環(huán)實(shí)現(xiàn)圖像處理算法,文中有詳細(xì)的代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下2023-07-07
matplotlib savefig 保存圖片大小的實(shí)例
今天小編就為大家分享一篇matplotlib savefig 保存圖片大小的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05
python和c語(yǔ)言的主要區(qū)別總結(jié)
在本篇文章里小編給各位整理了關(guān)于python和c語(yǔ)言的主要區(qū)別的相關(guān)知識(shí)帖內(nèi)容,有需要的朋友們學(xué)習(xí)閱讀下。2019-07-07
Python基礎(chǔ)之函數(shù)與控制語(yǔ)句
在調(diào)用函數(shù)的時(shí)候,如果沒(méi)有按照形參傳入指定的參數(shù),就會(huì)報(bào)錯(cuò),這時(shí),我們可以為函數(shù)的參數(shù)設(shè)置默認(rèn)的值,下面這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)之函數(shù)與控制語(yǔ)句的相關(guān)資料,需要的朋友可以參考下2022-04-04
如何徹底解決python?NameError:name?'__file__'?is?not?
這篇文章主要給大家介紹了關(guān)于如何徹底解決python?NameError:name?'__file__'?is?not?defined的相關(guān)資料,文中通過(guò)圖文將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
Python?Playwright進(jìn)行常見(jiàn)的頁(yè)面交互操作
在使用?Playwright?進(jìn)行?Web?自動(dòng)化時(shí),頁(yè)面交互是核心操作之一,本文將詳細(xì)介紹如何使用?Playwright?進(jìn)行常見(jiàn)的頁(yè)面交互操作,希望對(duì)大家有所幫助2024-10-10
Python進(jìn)行Socket接口測(cè)試的實(shí)現(xiàn)
Python 提供了強(qiáng)大且易于使用的 socket 模塊,使開(kāi)發(fā)者能夠輕松地創(chuàng)建客戶端和服務(wù)器應(yīng)用,實(shí)現(xiàn)數(shù)據(jù)傳輸和交互,本文主要介紹了Python進(jìn)行Socket接口測(cè)試的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06

