2010-05-13 31 views
4

嚴格按照以下examples found on the docs完成此錯誤。並且您無法在任何地方找到任何說明,例如that long long docs pagegooglestackoverflow。另外,閱讀optparse.py顯示OptionGroup存在,因此增加了混淆。名稱'OptionGroup'未定義

Python 2.6.1 (r261:67515, Feb 11 2010, 00:51:29) 
>>> from optparse import OptionParser 
>>> outputGroup = OptionGroup(parser, 'Output handling') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'OptionGroup' is not defined 

我敢打賭,只有不到1分鐘的時間才能發現我的錯誤。 :)

是的,這意味着我知道答案,但因爲這花了我很長時間才發現我想在這裏「記錄」它。

+1

@SLott確定......但我的觀點是,我剛纔問我已經知道答案的問題,只在某處「目錄」。因爲我花了相當長的時間才弄明白,並且沒有提到這個問題。隨意編輯它自己,但你建議我可以做什麼?我不介意刪除這個,我只是認爲它可以幫助其他可能陷入我陷阱的人。 - 順便說一句,這個問題在*帶引號的編碼錯誤*下很明顯。 – cregox 2010-05-13 20:40:27

+0

@SLott現在如何?我並不是真的想要提供背景的個人故事,但我總是同意,有什麼方法可以縮短無聊的措辭閱讀,這是我們可以閱讀的任何內容! - 再加上小小的背景,現在無論如何都記錄在評論和修訂版上,這要感謝你。 ; P – cregox 2010-05-13 21:31:39

回答

6

也許這是another example爲什麼它是better to import modules than functions from modules

OptionGroup在模塊optparse中定義。 命令

from optparse import OptionParser

OptionParser在全局命名空間,但忽視OptionGroup完全。

修復代碼,導入optparse模塊,並訪問其部分,像這樣:

import optparse 
parser = optparse.OptionParser() 
outputGroup = optparse.OptionGroup(parser, 'Output handling') 
+0

恰恰是這個問題。我同意「更好的方式來導入模塊」,但我實際上*修復它*與文檔一起使用和使用'從optparse導入OptionParser,OptionGroup' - 順便說一句,足夠長的時間! ; d – cregox 2010-05-13 20:51:58