了解Python中的dir()

2024-04-18 08:09:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python中查找dir()的用法,遇到了下面的示例,其中support只是一个用户定义的模块,其中包含打印传递给它的参数的函数print_func。你知道吗

print dir(support)

Output: ['__builtins__',
        '__doc__',
        '__file__',
        '__name__',
        '__package__',
        'print_func']

我基本上不明白下面的说法是什么意思:

In the call above, __name__ is the module's filename and __file__ is the filename from which the module was loaded.

__name____file__不一样吗?你知道吗


Tags: 模块the用户name示例support用法定义
1条回答
网友
1楼 · 发布于 2024-04-18 08:09:17

不,__name____file__不一样。你知道吗

__name__是Python所看到的模块名;它是将模块存储在sys.modules中的键。对于sessions,这将是。。。。'sessions'。你知道吗

__file__属性是从中加载模块的文件名。它可以是.py文件,.pyc文件(如果从字节缓存加载),也可以是共享的动态库文件,等等

你找到的文字充其量是不精确的。您的sessions模块可以从文件/foo/bar/baz/sessions.py加载,然后模块名sessions是文件名的一部分。你知道吗

请注意,__name__不一定是导入的模块的名称:

>>> import os.path as os_path
>>> os_path.__name__
'posixpath'

这里发生了两件事:我们以不同的名称导入模块;os_path绑定到os.path模块对象。但是os模块做了类似的事情:它也以一个新名称导入一个特定于平台的模块:

if 'posix' in _names:
    # ....
    import posixpath as path

所以os.path实际上是posixpath模块的别名。在Windows上,它将使用ntpath模块。你知道吗

相关问题 更多 >