Python の宿題ここで答えます Part 1at TECH
Python の宿題ここで答えます Part 1 - 暇つぶし2ch653:デフォルトの名無しさん
08/06/13 14:00:14
>>651
名前の管理の仕方が違う。後者の書き方はインポートする側の名前空間を汚さない。

from Tkinter import *

の場合は Tkinter モジュールで定義された名前が全部インポートする側(の名前空間)に取り込まれる。
メリットは取り込んだ名前をそのまま使えること。
例えば c = Canvas(...) のように Canvas クラスを直接使用できる。
デメリットは、取り込んだ名前をインポートする側のプログラムで上書き(再定義)してしまったり、
そうならないように注意してプログラムを書かなければいけなくなること。
例えば import 後に class Canvas: ... のように同じ名前のクラスや変数を再定義してしまうと
Tkinter の Canvas は使えなくなる。それで構わないこともあるが、うっかりミスにつながりやすい。

import Tkinter as Tk 

の場合はインポートする側(の名前空間)に Tk という名前しか取り込まない。
メリットは Tkinter モジュールで定義されたクラスや変数を上書き定義してしまう心配がないこと、
デメリットは c = Tk.Canvas(...) のようにいちいちモジュール名を前置きしないといけないことだ。

俺は名前空間を汚さない後者の書き方を好んで使っている。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch