# dir()函数
你可以使用内建的`dir`函数来列出模块定义的标识符。标识符有函数、类和变量。
当你为`dir()`提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。
```
$ python
>>> import sys
>>> dir(sys) # get list of attributes for sys module
['__displayhook__', '__doc__', '__excepthook__', '__name__', '__stderr__',
'__stdin__', '__stdout__', '_getframe', 'api_version', 'argv',
'builtin_module_names', 'byteorder', 'call_tracing', 'callstats',
'copyright', 'displayhook', 'exc_clear', 'exc_info', 'exc_type',
'excepthook', 'exec_prefix', 'executable', 'exit', 'getcheckinterval',
'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding',
'getrecursionlimit', 'getrefcount', 'hexversion', 'maxint', 'maxunicode',
'meta_path','modules', 'path', 'path_hooks', 'path_importer_cache',
'platform', 'prefix', 'ps1', 'ps2', 'setcheckinterval', 'setdlopenflags',
'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout',
'version', 'version_info', 'warnoptions']
>>> dir() # get list of attributes for current module
['__builtins__', '__doc__', '__name__', 'sys']
>>>
>>> a = 5 # create a new variable 'a'
>>> dir()
['__builtins__', '__doc__', '__name__', 'a', 'sys']
>>>
>>> del a # delete/remove a name
>>>
>>> dir()
['__builtins__', '__doc__', '__name__', 'sys']
>>>
```
## 它如何工作
首先,我们来看一下在输入的`sys`模块上使用`dir`。我们看到它包含一个庞大的属性列表。
接下来,我们不给`dir`函数传递参数而使用它——默认地,它返回当前模块的属性列表。注意,输入的模块同样是列表的一部分。
为了观察`dir`的作用,我们定义一个新的变量`a`并且给它赋一个值,然后检验`dir`,我们观察到在列表中增加了以上相同的值。我们使用`del`语句删除当前模块中的变量/属性,这个变化再一次反映在`dir`的输出中。
关于`del`的一点注释——这个语句在运行后被用来 删除 一个变量/名称。在这个例子中,`del a`,你将无法再使用变量`a`——它就好像从来没有存在过一样。
- 版权信息
- 前言
- 本书的由来
- 本书目前的状况
- 约定条款
- 反馈
- 值得思考的一些东西
- 第1章 介绍
- Python的特色
- 为什么不使用Perl?
- 程序员的话
- 第2章 安装Python
- Windows®用户
- 概括
- 第3章 最初的步骤
- 使用带提示符的解释器
- 挑选一个编辑器
- 使用源文件
- 可执行的Python程序
- 获取帮助
- 概括
- 第4章 基本概念
- 数
- 字符串
- 变量
- 标识符的命名
- 数据类型
- 对象
- 逻辑行与物理行
- 缩进
- 概括
- 第5章 运算符与表达式
- 运算符
- 运算符优先级
- 表达式
- 概括
- 第6章 控制流
- if语句
- while语句
- for循环
- break语句
- continue语句
- 概括
- 第7章 函数
- 函数形参
- 局部变量
- 默认参数值
- 关键参数
- return语句
- DocStrings
- 概括
- 第8章 模块
- 字节编译的.pyc文件
- from..import语句
- 模块的name
- 制造你自己的模块
- dir()函数
- 概括
- 第9章 数据结构
- 列表
- 元组
- 字典
- 序列
- 参考
- 更多字符串的内容
- 概括
- 第10章 解决问题——编写一个Python脚本
- 解决方案
- 软件开发过程
- 概括
- 第11章 面向对象的编程
- self
- 类
- 对象的方法
- __init__方法
- 类与对象的方法
- 继承
- 概括
- 第12章 输入/输出
- 储存器
- 概括
- 第13章 异常
- try..except
- 引发异常
- try..finally
- 概括
- 第14章 Python标准库
- sys模块
- os模块
- 概括
- 第15章 更多Python的内容
- 单语句块
- 列表综合
- 在函数中接收元组和列表
- lambda形式
- exec和eval语句
- assert语句
- repr函数
- 概括
- 第16章 接下来学习什么?
- 探索更多内容
- 概括
- 附录A 自由/开放源码软件(FLOSS)
- 附录B 关于本书
- 关于作者
- 关于译者
- 关于简体中文译本
- 附录C 修订记录
- 术语表