私は、次のコードを持っている:私は@property
デコレータを削除するか、私は.toAscii
呼び出しを削除し、それが動作する場合プロパティデコレータに「オブジェクトに属性がありません」と表示されるのはなぜですか?
[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'
:
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
は、この例外の出力を提供します。しかし、なぜこのエラーは、dir(page)
にそれが表示されても何の属性もないと言いますか?
*別名:おそらく '.toHtml()。toAscii()'を意味します。カッコがないことに注意してください。 –
プロパティは 'object'の子孫であるPythonオブジェクトでのみ利用可能です – dawg
あなたは正しい@Robᵩです! ...あなたはそれを答えとして提出する必要があります。 –