Python中的help()函数和dir()函数有什么作用?
在Python中,help() 和 dir() 是两个非常强大的内置函数,主要用于自省(Introspection),也就是在代码运行时查看对象的信息。它们是学习Python库、调试代码和探索未知模块的必备工具。
简单来说:
help()是你的说明书(告诉你是做什么的,怎么用)。dir()是你的目录/清单(告诉你里面有什么)。
下面是详细的解释和对比:
1. help() 函数
作用:help() 用于调用Python的内置帮助系统。它会显示对象(模块、类、函数、关键字等)的文档字符串(Docstring),解释该对象的功能、参数和用法。
使用场景:
当你不知道某个函数怎么用,或者想知道某个库里有哪些功能说明时使用。
示例:
python
# 1. 查看内置函数的帮助
help(print)
# 输出:会显示 print 函数的定义、参数(如 sep, end)以及详细说明。
# 2. 查看数据类型的帮助
help(list)
# 输出:会显示列表类的定义以及所有可用方法(append, pop 等)的详细说明。
# 3. 查看自定义函数的帮助
def my_func(x):
"""这是一个自定义函数,用于计算平方"""
return x * x
help(my_func)
# 输出:
# Help on function my_func in module __main__:
# my_func(x)
# 这是一个自定义函数,用于计算平方
注意:如果在交互式命令行中直接输入 help() 不带参数,会进入交互式帮助模式。
2. dir() 函数
作用:dir() 用于尝试返回一个对象的所有属性和方法名称的列表(List)。它不提供解释,只列出名字。
使用场景:
当你记不清某个对象有哪些方法,或者想快速查看一个模块里定义了哪些变量和类时使用。
示例:
python
import math
# 1. 查看模块中包含的内容
print(dir(math))
# 输出:['__doc__', '__loader__', ..., 'cos', 'pi', 'sin', 'sqrt', ...]
# 你可以看到 math 模块里有 cos, pi, sqrt 等东西。
# 2. 查看列表对象有哪些方法
my_list = []
print(dir(my_list))
# 输出:['__add__', ..., 'append', 'clear', 'copy', 'count', ...]
# 这里列出了列表支持的所有操作。
# 3. 不带参数调用(查看当前作用域有哪些变量)
x = 10
y = 20
print(dir())
# 输出:['__annotations__', ..., 'x', 'y']
# 显示当前环境中定义了 x 和 y。
注意:dir() 输出中通常包含很多以双下划线开头和结尾的名字(如 __init__),这些是Python的“魔术方法”或内部属性,初学者通常可以先忽略,关注普通名称即可。
3. help() vs dir() 核心区别
| 特性 | help() |
dir() |
|---|---|---|
| 核心目的 | 解释说明 | 列出结构 |
| 输出形式 | 文本页面(像阅读文章) | 字符串列表(List) |
| 包含内容 | 功能描述、参数意义、使用示例 | 属性名、方法名、变量名 |
| 详细程度 | 非常详细 | 仅包含名字 |
| 比喻 | 产品的用户手册 | 产品的零件清单 |
总结
- 如果你想问:“这个函数是干嘛的?参数怎么填?” —— 请用
help()。 - 如果你想问:“这个对象里面都有啥?我能调用哪些方法?” —— 请用
dir()。
实战技巧:
通常先用 dir() 看看有什么方法可用,如果看到一个感兴趣的方法名(比如 pop)但不知道具体怎么用,再用 help(对象.pop) 去查看详细用法。