你如何阅读Python模块的源代码?

时间:2018-04-17 20:32:58

标签: python tkinter python-import python-module

我试图理解一些内置的Python模块是如何工作的。

例如,使用代码:

from Tkinter import *
root = Tk()
root.mainloop()

函数Tk的定义在哪里?

我一直在搜索tkinter source code但找不到它。 代码多次调用import Tkinter这也很奇怪,因为 Tkinter,为什么要自行导入?

希望有人能帮助解决我的困惑

2 个答案:

答案 0 :(得分:5)

虽然cxw的答案是准确和正确的,但我建议您安装IPython,如果您发现自己经常查看Python模块的代码。它是python控制台的更好版本:

$ pip install IPython
...
$ ipython

然后,要查看类/函数/模块的代码,请在其中键入其名称并添加??

from Tkinter import *
Tk??

答案 1 :(得分:4)

class Tk位于:

通常,当您import Foo时,如果Foo是使用Python代码实现的模块,并且Python的search path中有Foo/__init__.py,那么该文件就会运行。 Some more information here,以及Python 2Python 3模块的官方文档。内置于Python解释器的模块可能不是这种情况,例如2.7 Tkinter

Tkinter具体细节

  • 在Python 2中,Tkinter是一个Python模块,tkinter(小写)是Tkinter使用的C模块(source)。
  • 在Python 3中,tkinter(小写)是一个Python模块,_tkinter(带下划线)是tkinter使用的C模块(source)。