def fix_result( f) :
def wrap( *args, **kwargs) :
result = f( *args, **kwargs)
if args[ 0 ] .check ( result) :
return 1
else :
return result
return wrap
class A:
def __init__ ( self ) :
self .var = 0
def check( self , var) :
return self .var == var
def test ( self ) :
print ( self .b ( ) )
print ( self .c ( ) )
@ fix_result
def b( self ) :
return 2
@ fix_result
@ classmethod
def c( cls) :
return 3
a = A( )
a.test ( )
CgpkZWYgZml4X3Jlc3VsdChmKToKCWRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CgkJcmVzdWx0ID0gZigqYXJncywgKiprd2FyZ3MpCgkJaWYgYXJnc1swXS5jaGVjayhyZXN1bHQpOgoJCQlyZXR1cm4gMQoJCWVsc2U6CgkJCXJldHVybiByZXN1bHQKCXJldHVybiB3cmFwCgpjbGFzcyBBOgoJZGVmIF9faW5pdF9fKHNlbGYpOgoJCXNlbGYudmFyID0gMAoJCglkZWYgY2hlY2soc2VsZiwgdmFyKToKCQlyZXR1cm4gc2VsZi52YXIgPT0gdmFyCgkKCWRlZiB0ZXN0KHNlbGYpOgoJCXByaW50KHNlbGYuYigpKQoJCXByaW50KHNlbGYuYygpKQoJCglAZml4X3Jlc3VsdAoJZGVmIGIoc2VsZik6CgkJcmV0dXJuIDIKCQkKCUBmaXhfcmVzdWx0CglAY2xhc3NtZXRob2QKCWRlZiBjKGNscyk6CgkJcmV0dXJuIDMKCmEgPSBBKCkKYS50ZXN0KCk=