import modx和modx import*有什么区别?

DCI*_*Dev 22 python import module

如果我要导入一些名为modx的模块,那么与说法有何不同

from modx import *
Run Code Online (Sandbox Code Playgroud)

不是所有内容都是从每种方式导入的吗?这只是为了澄清而在python中.

Thi*_*ter 36

如果你import somemodule包含的全局变量将通过somemodule.someglobal.如果你from somemodule import *所有的全局变量(或者__all__如果它存在则列出的那些)将被制成全局变量,即你可以使用someglobal前面没有模块名称来访问它们.

from module import *不鼓励使用,因为它会使全局范围变得混乱,如果从多个模块导入内容,则可能会发生冲突并覆盖现有的类/函数.


Amb*_*ber 17

如果a定义a.ba.c...

import a
a.b()
a.c()
Run Code Online (Sandbox Code Playgroud)

from a import b
b()
c() # fails because c isn't imported
Run Code Online (Sandbox Code Playgroud)

from a import *
b()
c()
Run Code Online (Sandbox Code Playgroud)

请注意,from foo import *通常不赞成:

  1. 它将事物放入全局命名空间而不会给你很好的控制
  2. 由于全局命名空间中的所有内容,它可能导致冲突
  3. 它使得不清楚当前文件中实际定义的内容,因为它定义的内容列表可能会根据导入的内容而有所不同.