内置dir() 函数返回由对象定义的名称列表。如果对象是模块,则此列表包括在该模块内部定义的函数,类和变量。 该函数可以接受参数。如果参数是模块的名称,则该函数返回该指定模块的名称列表。如果没有参数,该函数将返回当前模块的名称列表。 例子: $ python
>>> import sys
>>> dir(sys)
['__displayhook__', '__doc__',
'argv', 'builtin_module_names',
'version', 'version_info']
>>> dir()
['__builtins__', '__doc__',
'__name__', '__package__', 'sys']
>>> a = 5
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'sys', 'a']
>>> del a
>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'sys']
这个怎么运作 首先,我们dir 在导入的sys 模块上看到的用法。我们可以看到其中包含的大量属性。 接下来,我们在dir 不传递参数的情况下使用该函数。默认情况下,它返回当前模块的属性列表。请注意,导入模块的列表也是该列表的一部分。 为了观察dir 实际情况,我们定义了一个新变量a 并为其分配了一个值,然后检查dir 并观察到在同名列表中还有一个附加值。我们使用该del 语句删除当前模块的变量/属性,并且更改再次反映在dir 函数的输出中。 关于的注释del :此语句用于删除变量/名称,并且在该语句运行后,在这种情况下del a ,您将无法再访问该变量a -好像它根本不存在。 请注意,该dir() 函数可在任何对象上使用。例如,运行(string)类dir(str) 的属性str 。 还有一个vars() 功能可以为您提供属性及其值,但并非在所有情况下都有效。 配套到目前为止,您必须已经开始观察组织程序的层次结构。变量通常放在函数内部。函数和全局变量通常位于模块内部。如果要组织模块怎么办?那就是包裹出现的地方。 包只是带有特殊__init__.py 文件的模块文件夹,该文件向Python指示此文件夹是特殊的,因为它包含Python模块。 假设您要创建一个名为“ world”的包,并带有“ asia”,“ africa”等子包,这些子包又包含“ india”,“ madagascar”等模块。 这是构造文件夹的方式: - <some folder present in the sys.path>/
- world/
- __init__.py
- asia/
- __init__.py
- india/
- __init__.py
- foo.py
- africa/
- __init__.py
- madagascar/
- __init__.py
- bar.py
包只是方便地分层组织模块。 |