Saya mengubah beberapa kelas saya dari penggunaan ekstensif getter dan setter ke penggunaan properti yang lebih pythonic.
Tapi sekarang saya macet karena beberapa getter atau setter saya sebelumnya akan memanggil metode yang sesuai dari kelas dasar, dan kemudian melakukan sesuatu yang lain. Tapi bagaimana ini bisa dilakukan dengan properti? Bagaimana memanggil pengambil atau penyetel properti di kelas induk?
Tentu saja memanggil atribut itu sendiri memberikan rekursi tak terbatas.
class Foo(object):
@property
def bar(self):
return 5
@bar.setter
def bar(self, a):
print a
class FooBar(Foo):
@property
def bar(self):
# return the same value
# as in the base class
return self.bar # --> recursion!
@bar.setter
def bar(self, c):
# perform the same action
# as in the base class
self.bar = c # --> recursion!
# then do something else
print 'something else'
fb = FooBar()
fb.bar = 7
Foo.bar.fset(self, c)
penyetel yang diwariskan? Mengapa tidakFoo.bar.fset(c)
- tanpa "diri" - Saya pikir ini secara implisit telah berlalu?