समस्या के मूल कि Tkinter मॉड्यूल Tkinter
(राजधानी "टी") अजगर 2 में नामित किया गया है है .x, और tkinter
(लोअरकेस "टी") पायथन 3.x में।
दोनों अजगर 2 में अपने कोड काम करने के लिए और 3 आप कुछ इस तरह कर सकते हैं:
Wildcard imports (from <module> import *) should be avoided
के बावजूद:
try:
# for Python2
from Tkinter import *
except ImportError:
# for Python3
from tkinter import *
हालांकि, PEP8 इस वाइल्डकार्ड आयात के बारे में क्या कहना है पीईपी 8 को अनदेखा करने वाले अनगिनत ट्यूटोरियल, आयात करने के लिए पीईपी 8-अनुरूप तरीका इस तरह होगा:
import tkinter as tk
इस तरह से आयात करते समय, आपको tk.
(उदाहरण: root = tk.Tk()
, आदि) के साथ सभी tkinter आदेशों को उपसर्ग करने की आवश्यकता है। यह आपके कोड को थोड़ा और अधिक टाइपिंग के खर्च पर समझने में आसान बना देगा। यह देखते हुए कि दोनों tkinter और ttk अक्सर एक साथ उपयोग किया जाता है और एक ही नाम के साथ कक्षाओं आयात, यह एक अच्छी बात है। चूंकि Zen of python कहता है: "स्पष्ट से स्पष्ट स्पष्ट है"।
नोट: as tk
भाग वैकल्पिक है, लेकिन आप एक छोटे से कम लिख करने देता है: tk.Button(...)
बनाम tkinter.Button(...)
स्रोत
2012-07-23 21:55:12