class propholder:
def __init__(self):
self.__class__.propgetter._usecount = 0
def propgetter(self):
self.__class__.propgetter._usecount = self.__class__.propgetter._usecount + 1
print(f"getcount= {self.__class__.propgetter._usecount}")
return self.__class__.propgetter._pvalue # set by the setter
def propsetter(self, v):
self.__class__.propgetter._pvalue = v
# function to delete _age attribute
def propdeleter(self):
del self.__class__.propgetter
del self.__class__.propsetter
del self.__class__.propdeleter
aprop = property(propgetter, propsetter, propdeleter)
ap = propholder()
for i in [10, 11, 12]:
ap.aprop = i
print(f" ap.aprop={ap.aprop} ")
prop_get = ap.__class__.aprop.__get__
print(prop_get.__self__.fget)
print(prop_get.__self__.fget._usecount)
Y2xhc3MgcHJvcGhvbGRlcjoKICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICBzZWxmLl9fY2xhc3NfXy5wcm9wZ2V0dGVyLl91c2Vjb3VudCA9IDAKCiAgICBkZWYgcHJvcGdldHRlcihzZWxmKToKICAgICAgICBzZWxmLl9fY2xhc3NfXy5wcm9wZ2V0dGVyLl91c2Vjb3VudCA9IHNlbGYuX19jbGFzc19fLnByb3BnZXR0ZXIuX3VzZWNvdW50ICsgMQogICAgICAgIHByaW50KGYiZ2V0Y291bnQ9IHtzZWxmLl9fY2xhc3NfXy5wcm9wZ2V0dGVyLl91c2Vjb3VudH0iKQogICAgICAgIHJldHVybiBzZWxmLl9fY2xhc3NfXy5wcm9wZ2V0dGVyLl9wdmFsdWUgICMgc2V0IGJ5IHRoZSBzZXR0ZXIKCiAgICBkZWYgcHJvcHNldHRlcihzZWxmLCB2KToKICAgICAgICBzZWxmLl9fY2xhc3NfXy5wcm9wZ2V0dGVyLl9wdmFsdWUgPSB2CgogICAgIyBmdW5jdGlvbiB0byBkZWxldGUgX2FnZSBhdHRyaWJ1dGUKICAgIGRlZiBwcm9wZGVsZXRlcihzZWxmKToKICAgICAgICBkZWwgc2VsZi5fX2NsYXNzX18ucHJvcGdldHRlcgogICAgICAgIGRlbCBzZWxmLl9fY2xhc3NfXy5wcm9wc2V0dGVyCiAgICAgICAgZGVsIHNlbGYuX19jbGFzc19fLnByb3BkZWxldGVyCgogICAgYXByb3AgPSBwcm9wZXJ0eShwcm9wZ2V0dGVyLCBwcm9wc2V0dGVyLCBwcm9wZGVsZXRlcikKCgphcCA9IHByb3Bob2xkZXIoKQpmb3IgaSBpbiBbMTAsIDExLCAxMl06CiAgICBhcC5hcHJvcCA9IGkKICAgIHByaW50KGYiIGFwLmFwcm9wPXthcC5hcHJvcH0gIikKcHJvcF9nZXQgPSBhcC5fX2NsYXNzX18uYXByb3AuX19nZXRfXwpwcmludChwcm9wX2dldC5fX3NlbGZfXy5mZ2V0KQpwcmludChwcm9wX2dldC5fX3NlbGZfXy5mZ2V0Ll91c2Vjb3VudCk=