我正在尝试理解一些Python内置模块的工作原理。
例如,使用以下代码:
from Tkinter import *
root = Tk()
root.mainloop()
函数 Tk
的定义在哪里?
我已经搜索了 tkinter 源代码,但未能找到它。
代码多次调用 import Tkinter
,这也很奇怪,因为这就是 Tkinter
,为什么要导入自己呢?
希望有人能帮助解决我的困惑。
我正在尝试理解一些Python内置模块的工作原理。
例如,使用以下代码:
from Tkinter import *
root = Tk()
root.mainloop()
函数 Tk
的定义在哪里?
我已经搜索了 tkinter 源代码,但未能找到它。
代码多次调用 import Tkinter
,这也很奇怪,因为这就是 Tkinter
,为什么要导入自己呢?
希望有人能帮助解决我的困惑。
$ pip install IPython
...
$ ipython
然后,要查看类/函数/模块的代码,请键入其名称并添加??
:
from Tkinter import *
Tk??
Tk
类所在位置如下:
Tkinter.py
__init__.py
. 通常情况下,当你导入 Foo
时,如果 Foo
是使用 Python 代码实现的模块,并且在 Python 的搜索路径中存在一个 Foo/__init__.py
文件,则会运行该文件。这里有更多信息,以及关于Python 3和Python 2模块的官方文档。但对于内置于 Python 解释器的模块(例如 2.7 中的 Tkinter
),可能并非如此。
Tkinter
的特别之处__init__.py
中,而是在Tkinter.py中。我认为它只在Python 3的__init__.py
中。在这种情况下,我们知道OP正在使用Python2,因为他们正在使用Tkinter
而不是tkinter
。 - Bryan Oakley