Python dir()可以';不能理解列表

Python dir()可以';不能理解列表,python,Python,当我检查expanduser功能是否属于sys模块或os模块时,我对其进行编码: >>> [m for m in dir(os.path.__all__) if m.startswith('ex')] ['extend'] 显然,它不能过滤expanduser。所以我编写代码,它对我有效: >>> [m for m in os.path.__all__ if m.startswith('ex')] ['exists', 'expanduser', 'expa

当我检查
expanduser
功能是否属于
sys
模块或
os
模块时,我对其进行编码:

>>> [m for m in dir(os.path.__all__) if m.startswith('ex')]
['extend']
显然,它不能过滤
expanduser
。所以我编写代码,它对我有效:

>>> [m for m in os.path.__all__ if m.startswith('ex')]
['exists', 'expanduser', 'expandvars', 'extsep']

有人知道这是为什么吗

调用时,您正在将列表传递给
dir

dir(os.path.__all__)
因为
os.path.\uuuuu all\uuuu
是一个字符串列表。这和打电话一样

dir([])
您需要拨打:

dir(os.path)

相反。

当您调用时,您正在将列表传递给
dir

dir(os.path.__all__)
因为
os.path.\uuuuu all\uuuu
是一个字符串列表。这和打电话一样

dir([])
您需要拨打:

dir(os.path)

相反。

您应该直接在
os.path
上调用
dir
,而不是在
\uuuuuuuuuuuuuuu
属性上,该属性是一个列表,其
dir
为您留下列表的属性:

>>> [m for m in dir(os.path) if m.startswith('ex')]
['exists', 'expanduser', 'expandvars', 'extsep']

您应该直接在
os.path
上调用
dir
,而不是在
\uuuuuuuuuuuuuu
属性上调用,该属性是一个列表,其
dir
为您留下了列表的属性:

>>> [m for m in dir(os.path) if m.startswith('ex')]
['exists', 'expanduser', 'expandvars', 'extsep']

\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
子模块的
\uuuuuuu init\uuuuuuuuuuuupy
文件中的列表。这与在实际子模块上调用
dir
不同


您需要使用
dir(os.path)
来检查它的实际内容。

os.path
子模块的
init\uuuuuuuuupy
文件中的一个列表。这与在实际子模块上调用
dir
不同

你需要
dir(os.path)
来检查它的实际内容。

你是说
dir(os.path)
?你是说
dir(os.path)