私はそれがばかげた質問であることを知っていますが、私はPythonを学び始めたばかりで、Pythonについて十分な知識がありません. 私の質問は、違いは何ですか
from Tkinter import *
と
import Tkinter as tk
?どうして書けないの?
import Tkinter
誰かが私を啓発するために数分を割くことができますか?
from Tkinter import *
Tkinter で公開されているすべてのオブジェクトを現在の名前空間にインポートします。
import Tkinter
名前空間に「名前空間」Tkinter をインポート
import Tkinter as tk
して同じことを行いますが、入力を節約するためにローカルで「tk」に「名前を変更」します
クラス A、B、および C を含むモジュール foo があるとします。
次にimport foo
、foo.A、foo.B、および foo.C へのアクセスを許可します。
それらにもアクセスできimport foo as x
ますが、xA、xB、および xC という
from foo import *
名前で、現在の名前空間に A、B、および C を直接インポートするため、A、B、および C でそれらにアクセスできます。
from foo import A, C
A と C をインポートするものもありますが、B は現在のネームスペースにインポートしません。
を実行することもできますfrom foo import B as Bar
。これにより、B が Bar という名前で (現在の名前空間で) 利用可能になります。
したがって、一般的には、モジュールのオブジェクトが 1 つだけ必要な場合は、from module import object
またはfrom module import object as whatiwantittocall
.
いくつかのモジュールの機能が必要な場合は、入力を節約するためにimport module
、 またはを実行します。import module as shortname
from module import *
誤って名前をシャドウ (「オーバーライド」) し、どのオブジェクトがどのモジュールに属しているかを追跡できなくなる可能性があるため、推奨されません。
あなたは確かに使用することができます
import Tkinter
ただし、そうすると、使用するすべての Tk クラス名の前に を付ける必要がありますTkinter.
。
これはかなり不便です。
一方で、次のようになります。
import Tkinter as tk
tk.
の代わりに入力するだけで問題を回避できますTkinter.
。
に関して:
from Tkinter import *
ワイルドカードのインポートは避けるべきですか?で説明されている理由により、一般的には悪い考えです。
書き込み:
from tkinter import *
tkinter
モジュールに存在するすべてのものをインポートすることになります
書き込み:
import tkinter
モジュールをインポートtkinter
することになりますが、そうする場合、任意のメソッドを呼び出すことができるようにするには、次を使用する必要があります。
tkinter.function_name()