导入_tkinter或tkinter?

时间:2018-01-22 15:34:45

标签: python tkinter

所有教程只需import tkinter

我想知道,为什么不import _tkinter?如果我的理解是正确的,_tkinter是cpython中的实际库,tkinter是接口或API。

当我阅读一些tkinter源代码时,我只是试图掌握范例。似乎有一些蟒蛇黑魔法正在进行中。

3 个答案:

答案 0 :(得分:7)

_tkinter是一个基于C的模块,它包装了一个内部tcl / tk解释器。当您导入它时,您只能访问此解释器但您无法访问任何python类

你当然可以导入_tkinter,但是你必须重新创建tcl / tk函数的所有python接口。

答案 1 :(得分:2)

在python" _"标记变量供内部使用

此约定在PEP 8中定义,但未由Python强制执行

您不应该以" _"开头导入类/模块/变量。由于这种性质,开发人员应该允许property / setter方法访问这些属性..

对于python2使用" Tkinter"

对于python3使用" tkinter"

http://pep8.org/#descriptive-naming-styles

答案 2 :(得分:0)

根据documentation

  

Tk接口位于名为_tkinter的二进制模块中。该模块包含Tk的低级接口,绝不应由应用程序员直接使用。

所以有些不满意的回答"为什么不导入_tkinter?"是因为语言开发人员告诉我们不要"。