Các gốc rễ của vấn đề là các mô-đun Tkinter được đặt tên Tkinter
(vốn "T") trong python 2 .x và tkinter
(chữ thường "t") trong python 3.x.
Để làm cho công việc mã của bạn trong cả Python 2 và 3 bạn có thể làm một cái gì đó như thế này:
try:
# for Python2
from Tkinter import *
except ImportError:
# for Python3
from tkinter import *
Tuy nhiên, PEP8 có này để nói về ký tự đại diện nhập khẩu:
Wildcard imports (from <module> import *) should be avoided
Mặc dù vô số hướng dẫn bỏ qua PEP8, cách tương thích PEP8 để nhập sẽ là một cái gì đó như thế này:
import tkinter as tk
Khi nhập theo cách này, bạn cần đặt trước tất cả các lệnh tkinter với tk.
(ví dụ: root = tk.Tk()
, v.v.). Điều này sẽ làm cho mã của bạn dễ hiểu hơn với chi phí cho việc gõ nhiều hơn một chút. Cho rằng cả tkinter và ttk thường được sử dụng cùng nhau và nhập các lớp có cùng tên, đây là một điều tốt. Như các trạng thái Zen of python: "rõ ràng là tốt hơn so với ngầm".
Lưu ý: Phần as tk
là không bắt buộc, nhưng cho phép bạn làm một chút ít gõ: tk.Button(...)
vs tkinter.Button(...)
Nguồn
2012-07-23 21:55:12