我在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__
不一样吗?你知道吗
不,
__name__
和__file__
不一样。你知道吗__name__
是Python所看到的模块名;它是将模块存储在sys.modules
中的键。对于sessions
,这将是。。。。'sessions'
。你知道吗__file__
属性是从中加载模块的文件名。它可以是.py
文件,.pyc
文件(如果从字节缓存加载),也可以是共享的动态库文件,等等你找到的文字充其量是不精确的。您的
sessions
模块可以从文件/foo/bar/baz/sessions.py
加载,然后模块名sessions
是文件名的一部分。你知道吗请注意,
__name__
不一定是导入的模块的名称:这里发生了两件事:我们以不同的名称导入模块;
os_path
绑定到os.path
模块对象。但是os
模块做了类似的事情:它也以一个新名称导入一个特定于平台的模块:所以
os.path
实际上是posixpath
模块的别名。在Windows上,它将使用ntpath
模块。你知道吗相关问题 更多 >
编程相关推荐