2015-04-05 90 views
0

從我讀過的內容和給出的理由來看,我知道from foo import *方法是不好的做法,這是由於變量賦值和內存問題的複雜性。但是,tkinter模塊是否會成爲此規則的例外情況?我認爲,當使用GUI時,人們可能正在尋找使用來自相應模塊的大部分功能/方法,其中與itertools相比,可能只需要訪問少數模塊(一個將不需要使用permutationscombinations)。對tkinter使用import *方法是不好的做法嗎?

無論tkinter是否例外,是否有任何模塊?

回答

4

Python有一個style guide,這是明確的關於通配符進口一個可接受的使用:

通配符進口(from <module> import *)應該避免,因爲它們使不清楚哪個名字出現在命名空間,混淆讀者和許多自動化工具。對於通配符導入有一個有效的用例,即重新發布內部接口作爲公共API的一部分(例如,用可選加速器模塊的定義覆蓋接口的純Python實現,並確切定義哪些定義預先覆蓋不知道)。

+0

謝謝你,從來不知道這存在^ _ ^ – user2901512 2015-04-06 11:54:52

5

from foo import *有許多問題;它可以導入許多你不想要的東西,特別是可以覆蓋內置函數的名稱或從其他模塊導入的東西的東西。更糟糕的是,您的程序現在可能正常工作,但在foo模塊的作者以後的版本中,在模塊中添加功能bar,如果預期bar是其他內容,您的代碼可能突然中斷。

的優選方式與長模塊通常是具有短別名導入模塊:

import tkinter as tk 

,然後使用例如tk.Button。這是documentation使用的成語。

+0

啊,我從來不知道,你可以導入富,酒吧,或者更確切地說,foobar的爲FB,這使得它很容易,謝謝:)指導我的風格指南 – user2901512 2015-04-05 06:56:20

相關問題