Difference between “from x.y import z” and “import x.y.z as z”

前端 未结 2 1759
感动是毒
感动是毒 2021-01-08 01:06

In situations where you want to import a nested module into your namespace, I\'ve always written it like this:

from co         


        
2条回答
  •  梦毁少年i
    2021-01-08 01:56

    There are a few functional differences. First, as already mentioned in the comments, import package.thing as thing requires thing to be a module (or a subpackage, which is not actually a separate case because packages count as modules).

    Second, in Python 3.5 and later, if from package import thing finds that the module object for package does not have a thing attribute, it will try to look up sys.modules['package.thing'] as a fallback. This was added to handle certain cases of circular relative imports. import package.thing as thing does not yet perform this handling, but it will in Python 3.7.

提交回复
热议问题