import warnings
def warning_property(message, warning_type=DeprecationWarning):
class _property(property):
def __get__(self, obj, obj_type=None):
value = super().__get__(obj, obj_type)
class _proxy(type(value)):
def __call__(self):
warnings.warn(message, warning_type)
return value
return _proxy(value)
return _property
class A:
@warning_property(".length function is deprecated. Use the .length property")
def length(self):
return 1
print(A().length)
print(A().length())# your code goes here
aW1wb3J0IHdhcm5pbmdzCgpkZWYgd2FybmluZ19wcm9wZXJ0eShtZXNzYWdlLCB3YXJuaW5nX3R5cGU9RGVwcmVjYXRpb25XYXJuaW5nKToKICAgIGNsYXNzIF9wcm9wZXJ0eShwcm9wZXJ0eSk6CiAgICAgICAgZGVmIF9fZ2V0X18oc2VsZiwgb2JqLCBvYmpfdHlwZT1Ob25lKToKICAgICAgICAgICAgdmFsdWUgPSBzdXBlcigpLl9fZ2V0X18ob2JqLCBvYmpfdHlwZSkKICAgICAgICAgICAgY2xhc3MgX3Byb3h5KHR5cGUodmFsdWUpKToKICAgICAgICAgICAgICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKICAgICAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKG1lc3NhZ2UsIHdhcm5pbmdfdHlwZSkKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUKICAgICAgICAgICAgcmV0dXJuIF9wcm94eSh2YWx1ZSkKICAgIHJldHVybiBfcHJvcGVydHkKCmNsYXNzIEE6CiAgICBAd2FybmluZ19wcm9wZXJ0eSgiLmxlbmd0aCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkLiBVc2UgdGhlIC5sZW5ndGggcHJvcGVydHkiKQogICAgZGVmIGxlbmd0aChzZWxmKToKICAgICAgICByZXR1cm4gMQoKcHJpbnQoQSgpLmxlbmd0aCkKcHJpbnQoQSgpLmxlbmd0aCgpKSMgeW91ciBjb2RlIGdvZXMgaGVyZQ==