[PyKDE] pyqt and new-style classes
Ulrich Berning
ulrich.berning at desys.de
Thu Feb 19 11:57:00 GMT 2004
Phil Thompson schrieb:
>On Wednesday 18 February 2004 19:04, Eron Lloyd wrote:
>
>
>>Would there be any benefit in doing this? From the way I understand it, all
>>Qt objects already expose their get/set methods, while any objects you
>>create through subclassing can simply use Python's native properties
>>support. For the most part, properties have their biggest value in use with
>>Designer.
>>
>>Eron
>>
>>
>
>I agree, it just duplicates existing functionality at the cost of code bloat.
>
>
>
Not only code bloat, also a performance penalty.
Look at the following test class and the two methods to get and set an
attribute:
--------------------------------------------------
class PropertyTest(object):
def getValue(self):
return self._value
def setValue(self, value):
self._value = value
value = property(getValue, setValue, None)
--------------------------------------------------
x = PropertyTest()
for i in xrange(100000):
x.setValue("TEST")
a = x.getValue()
x.setValue(a.swapcase())
--------------------------------------------------
x = PropertyTest()
for i in xrange(100000):
x.value = "TEST"
a = x.value
x.value = a.swapcase()
--------------------------------------------------
On my Linux box with Python-2.3.3, the second method has only *~75%* of
the performance of the first method.
Nevertheless it makes sense to implement QMetaObject and QMetaProperty,
just in case someone plans to build a kind of dialog editor with PyQt
(in the future, we want to give our customers the facility to create or
modify dialogs or dialog components inside the application).
Ulli
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20040219/ed40a127/attachment.html
More information about the PyQt
mailing list