有人能向我解释一下吗?
当你导入 Tkinter.Messagebox
时,这实际上是什么意思(点符号表示法)?
我知道你可以导入 Tkinter
,但当你导入 Tkinter.Messagebox
时,这到底是什么?它是一个类内嵌在另一个类中吗?
我刚学Python,点符号表示法有时会让我感到困惑。
有人能向我解释一下吗?
当你导入 Tkinter.Messagebox
时,这实际上是什么意思(点符号表示法)?
我知道你可以导入 Tkinter
,但当你导入 Tkinter.Messagebox
时,这到底是什么?它是一个类内嵌在另一个类中吗?
我刚学Python,点符号表示法有时会让我感到困惑。
import a.b
将 b
导入到命名空间 a
中,你可以通过 a.b
访问它。请注意,这仅适用于 b
是模块的情况。(例如在 Python 3 中使用 import urllib.request
)
然而,from a import b
将 b
导入到当前命名空间中,并可通过 b
访问。这对于类、函数等都有效。
使用 from - import 时要小心:
from math import sqrt
from cmath import sqrt
这两个语句都将函数sqrt
引入当前命名空间中,但是第二个导入语句会覆盖第一个。
import a.b
将 b
导入到命名空间 a
中。" 这很有帮助。我以为在导入 a
时,所有 a
的“子模块”都会自动导入,但在 Python 中似乎并非如此 - 您需要明确导入子模块。但只有有时候?这与它是属性还是新模块/文件有关吗? - joe当你在导入时加上那个点号,就是引用你要导入的包或文件中的某些东西。 你所导入的可以是一个类、一个包或一个文件,每次加上一个点号就是询问前面实例中的某些东西。
parent/
__init__.py
file.py
one/
__init__.py
anotherfile.py
two/
__init__.py
three/
__init__.py
import parent.file
时,实际上是在导入另一个可能包含类和变量的 Python 模块,因此要引用该文件中的特定变量或类,可以使用 from parent.file import class
。import parent.one.anotherfile
)。
有关更多信息,请阅读有关此内容的Python文档。import decimal.Decimal
,它不起作用。) - Mark Dickinsonfrom .. import ..
,因为他是初学者。 - Mike__init__
文件,该文件表示该文件夹是一个Python包。因此,如果你导入Tkinter,它将导入Tkinter包文件夹中的__init__
文件,该文件可能包含函数,也可能不包含函数。当你从中导入某些东西,例如from Tkinter import func
,它会首先搜索__init__
,然后查找该包中的模块。 - Mike__init__.py
文件,告诉Python它是一个包,并且关于它的类型,这取决于你如何导入。如果你导入Tkinter,实际上是导入了它内部的__init__
模块;如果你使用from Tkinter import module
或者import Tkinter.module
(在某些情况下),则将Tkinter视为Python模块的包。 - Mike
Tkinter.Messagebox
。 - Antti Haapala -- Слава Україні