Python 3.12 代码片段:
import paho
import paho.mqtt.client # line 2
client = paho.mqtt.client.Client(paho.mqtt.enums.CallbackAPIVersion(2))
当第 2 行被注释掉时失败。
paho
模块由第一行导入。我在最后一行使用全名paho.mqtt.client.Client
。为什么看似多余的import paho.mqtt.client
是必要的?
有没有办法导入
paho.mqtt
模块,以便它可以用来缩短 paho.mqtt.client.Client
和 paho.mqtt.enums.CallbackAPIVersion
名称?
https://realpython.com/python-modules-packages/#python-packages
从技术上讲,您也可以导入包
但这并没有多大用处。虽然严格来说,这是一个语法正确的 Python 语句,但它并没有做任何有用的事情。特别是,它不会将 pkg 中的任何模块放入本地命名空间中:
导入
paho
包不会导入 mqtt
子包或 client
模块。
第 1 行,
import paho
是不必要的导入。