小白教程

 找回密码
 立即注册

dir()函数

发布者: 小白教程

内置dir()函数返回由对象定义的名称列表。如果对象是模块,则此列表包括在该模块内部定义的函数,类和变量。

该函数可以接受参数。如果参数是模块的名称,则该函数返回该指定模块的名称列表。如果没有参数,该函数将返回当前模块的名称列表。

例子:

$ python
>>> import sys

# get names of attributes in sys module
>>> dir(sys)
['__displayhook__', '__doc__',
'argv', 'builtin_module_names',
'version', 'version_info']
# only few entries shown here

# get names of attributes for current module
>>> dir()
['__builtins__', '__doc__',
'__name__', '__package__', 'sys']

# create a new variable 'a'
>>> a = 5

>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'sys', 'a']

# delete/remove a name
>>> 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

包只是方便地分层组织模块。

上一篇:制作自己的模块下一篇:列表

Archiver|手机版|小黑屋|小白教程 ( 粤ICP备20019910号 )

GMT+8, 2024-9-20 06:29 , Processed in 0.017473 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

返回顶部