Python3 wifi 模块 returns 对象,不是 wifi 网络列表
Python3 wifi module returns object, not list of wifi networks
我刚刚安装了 wifi 库,并开始按照指南 here,但是当我输入
>>> from wifi import Cell, Scheme
>>> Cell.all('wlan0')
我得到的输出不是一个列表,而是一个对象:
<map object at 0x7ff23b40e588>
我在 Ubuntu 14.04 上使用 Python 3.4,这似乎适用于 Python 2.7,这很好,但我更愿意使用 3.4。如何使输出成为列表?我认为这只是不同 Python 版本处理输出不同的情况。
编辑:我刚刚开始尝试重新弄清楚,现在当我这样做的时候
from wifi import Cell
我明白了:
ImportError: cannot import name Cell
我真的很困惑。
再次编辑:
算了,那是我傻。我制作了一个名为 wifi.py 的程序来测试它,忘记了 Python.
中模块的整个概念
Cell
return的all
方法是map(...)
。在 Python 2.x 中,这将 自动 return 一个列表,但是 Python 3.x return 是一个 map
对象(迭代器),可以通过对其调用 list
将其转换为列表。
因此,您可以通过在 returned 对象上调用 list
查看完整的 wifi 网络列表:
>>> list(Cell.all('wlan0'))
.
我刚刚安装了 wifi 库,并开始按照指南 here,但是当我输入
>>> from wifi import Cell, Scheme
>>> Cell.all('wlan0')
我得到的输出不是一个列表,而是一个对象:
<map object at 0x7ff23b40e588>
我在 Ubuntu 14.04 上使用 Python 3.4,这似乎适用于 Python 2.7,这很好,但我更愿意使用 3.4。如何使输出成为列表?我认为这只是不同 Python 版本处理输出不同的情况。
编辑:我刚刚开始尝试重新弄清楚,现在当我这样做的时候
from wifi import Cell
我明白了:
ImportError: cannot import name Cell
我真的很困惑。
再次编辑:
算了,那是我傻。我制作了一个名为 wifi.py 的程序来测试它,忘记了 Python.
中模块的整个概念Cell
return的all
方法是map(...)
。在 Python 2.x 中,这将 自动 return 一个列表,但是 Python 3.x return 是一个 map
对象(迭代器),可以通过对其调用 list
将其转换为列表。
因此,您可以通过在 returned 对象上调用 list
查看完整的 wifi 网络列表:
>>> list(Cell.all('wlan0'))
.