Eve*_*ing -1 python import tkinter python-3.x
因为我还在学习python,所以我遇到了一个问题.
为什么这样做:
class SomeOtherClass(object):
def __init__(self):
self.number = 10
print(self.number)
def increase(self):
self.number += 1
print(self.number)
class MyMainClass(object):
def __init__(self):
self.otherClass = MyClass()
app = MyMainClass() #Output: 10
app.otherclass.increase() #Output: 11
Run Code Online (Sandbox Code Playgroud)
但这不是:
from tkinter import *
class MyMainClass(object):
def __init__(self):
self.tk = Tkinter() # <-- Error: see below.
app = MyMainClass()
app.tk.title("My window")
...
Run Code Online (Sandbox Code Playgroud)
两次我都包括一个类,但在第二个例子中它说:
NameError:未定义全局名称"Tkinter"
这些示例之间的区别在哪里,我如何解决这个问题,所以我能在课堂上使用tkinter?
谢谢你的帮助.
也许你的意思Tk()?tkinterPython 3.x上的模块似乎不包含类Tkinter.
关于你的问题和例子的含义......好吧,这些例子绝对无关紧要,问题应该只是"为什么我不能创建一个实例Tkinter"或者什么.
Python课程:这也是一个很好的例子,说明为什么使用星形导入是一个坏主意(即from <module> import *,因为*看起来像一个星星).这会导入所有内容tkinter,但不会让您知道您认为其中的内容实际上是否存在
from tkinter import *
Run Code Online (Sandbox Code Playgroud)
而这个
from tkinter import Tkinter
Run Code Online (Sandbox Code Playgroud)
会立即指出(班级)Tkinter不存在tkinter.一些人似乎更喜欢的另一种选择(包括我自己在某些情况下),import tkinter接下来是tkinter.Tk(),其优点在于一个类来自何处.此外,PEP8还不鼓励使用星级进口(将其称为"通配符进口").