Is there any way to make the class Z behave the same way as class Y?
Chris
class Y:
value = 42
def __hasattr__(sel f, name):
if name == '__int__':
return True
def __getattr__(sel f, name):
if name == '__int__':
return lambda: self.value
class Z(object):
value = 42
def __hasattr__(sel f, name):
if name == '__int__':
return True
def __getattr__(sel f, name):
if name == '__int__':
return lambda: self.value
[color=blue][color=green][color=darkred]
>>> y, z = Y(), Z()
>>> print int(y)[/color][/color][/color]
42[color=blue][color=green][color=darkred]
>>> print int(z)[/color][/color][/color]
TypeError: int() argument must be a string or a number
Chris
class Y:
value = 42
def __hasattr__(sel f, name):
if name == '__int__':
return True
def __getattr__(sel f, name):
if name == '__int__':
return lambda: self.value
class Z(object):
value = 42
def __hasattr__(sel f, name):
if name == '__int__':
return True
def __getattr__(sel f, name):
if name == '__int__':
return lambda: self.value
[color=blue][color=green][color=darkred]
>>> y, z = Y(), Z()
>>> print int(y)[/color][/color][/color]
42[color=blue][color=green][color=darkred]
>>> print int(z)[/color][/color][/color]
TypeError: int() argument must be a string or a number
Comment