2011-12-27 63 views
0

pygtk當我設置標籤mylabel = gtk.Label("Hello World!")我可以通過mylabel.get()方法從它得到標籤的字符串。但在Python解釋器中,我無法獲得此方法的文檔字符串:help(gtk.Label.get)。有人知道爲什麼如何獲得PyGTK方法的幫助?

回答

2

這可能是因爲你想問的問題已經被@DonQuestion回答了...但是如果你真的只是想問問爲什麼help(gtk.Label.get)沒有回覆幫助......答案其實很簡單:因爲在Label對象中的get方法在源代碼中缺少文檔字符串。 :)

事實上,撥打help不會產生錯誤,只是一個空的答案。

+0

你知道我該如何閱讀gtk.Label.get()方法的源代碼嗎?在python的大部分庫中,除pygtk外,我可以進入它們的源代碼! – 2011-12-27 21:49:34

+0

@Khajavi - 在python shell中:'import gtk; gtk'將打印模塊的位置。然而gtk的大部分功能都是用C語言實現的,所以你會在那裏找到很少的python代碼,而且大多數是'.so'庫... – mac 2011-12-27 21:59:19

+0

啊哈!因此,這個圖書館沒有任何文檔字符串?在PyDev Eclipse中,大部分庫都有代碼完成的文檔,pygtk除外,這讓我非常煩惱。這是真的嗎? – 2011-12-27 22:04:16

3

因爲方法gtk.Label.get是一個對象本身,並且具有一些屬性。內置函數help看起來__doc__屬性和對象的一些其他字典和對象的類,並返回它們(格式化)。例如,你可以做一個help(help)! ;-)所以help(gtk.Label.get)返回方法/對象gtk.Label.get的屬性「__doc__」以及通過類內省收集的一些其他信息。它給你一個實際值gtk.Label實例的幫助。

+1

只有閱讀你的答案讓我真正理解了這個問題......我從來沒有想過OP希望爲_that_目的使用'help'! :o – mac 2011-12-27 20:06:33

+0

我的問題非常模糊;)我現在糾正它。我想知道爲什麼我無法獲取gtk.label.get()方法的文檔字符串! – 2011-12-27 21:41:09

+0

你確實得到了get-method doc-string。它恰好是空的。 – 2011-12-28 15:52:11

3

我推薦你使用ipython的dynamic object information在解釋器或調試某些代碼時使用某些庫時相當有幫助。

除此之外,如果您使用的是linux,安裝pygtk文檔包也非常有用,因爲它與devhelp很好地集成在一起,該工具可讓您輕鬆瀏覽和搜索文檔。

+0

我在使用Devhelp,並且正在使用pygtk documentation,當我搜索gtk.Label.get()方法時,沒有任何文檔!你知道爲什麼嗎? – 2011-12-27 21:46:34

+0

@Khajavi這是因爲它至少從gtk 2.6開始是一個不推薦的方法,正如你可以看到[here](http://www.gtk.org/api/2.6/gtk/GtkLabel.html#gtk-label-get)。應該使用'gtk.Label.get_text'或'gtk.Label.get_label'來代替。 – jcollado 2011-12-27 22:38:23

+0

用pygtktutorial學習pygtk令人驚歎:D非常好的答案。你幫助我很好!這讓我很困惑。 – 2011-12-27 22:47:42