我试图理解一些内置的Python模块是如何工作的。
例如,使用代码:
from Tkinter import *
root = Tk()
root.mainloop()
函数Tk
的定义在哪里?
我一直在搜索tkinter source code但找不到它。
代码多次调用import Tkinter
这也很奇怪,因为是 Tkinter
,为什么要自行导入?
希望有人能帮助解决我的困惑
答案 0 :(得分:5)
虽然cxw的答案是准确和正确的,但我建议您安装IPython,如果您发现自己经常查看Python模块的代码。它是python控制台的更好版本:
$ pip install IPython
...
$ ipython
然后,要查看类/函数/模块的代码,请在其中键入其名称并添加??
:
from Tkinter import *
Tk??
答案 1 :(得分:4)
class Tk
位于:
Tkinter.py
__init__.py
。 通常,当您import Foo
时,如果Foo
是使用Python代码实现的模块,并且Python的search path中有Foo/__init__.py
,那么该文件就会运行。 Some more information here,以及Python 2或Python 3模块的官方文档。内置于Python解释器的模块可能不是这种情况,例如2.7 Tkinter
。
Tkinter
具体细节