我有以下代碼:爲什麼屬性裝飾器顯示「對象沒有屬性」?
import sys
import platform
from PyQt4.QtGui import QApplication
from PyQt4.QtWebKit import QWebPage
class Render(QWebPage):
def __init__(self):
self.app = QApplication([])
QWebPage.__init__(self)
@property
def html(self):
return self.mainFrame().toHtml.toAscii()
page = Render()
print sys.version, platform.platform()
print 'html attribute?', [p for p in dir(page) if 'html' in p]
print page.html
給出了這樣的異常輸出:
[email protected]:$ python property.py
2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] Linux-3.2.0-38-generic-x86_64-with-Ubuntu-12.04-precise
html attribute? ['html']
Traceback (most recent call last):
File "property.py", line 18, in <module>
print page.html
AttributeError: 'Render' object has no attribute 'html'
如果我刪除@property
裝飾或我刪除了.toAscii
通話,那麼它的工作原理。但爲什麼錯誤說沒有屬性,即使是dir(page)
顯示它?
* Aside *:您可能意思是'.toHtml()。toAscii()'。請注意缺少的括號。 – 2013-03-11 20:58:37
屬性僅適用於從「對象」下降的Python對象 – dawg 2013-03-11 20:59:37
你是對的@Robᵩ! ...你應該提交這個答案,就是這樣。 – 2013-03-11 20:59:46