3 ms·
I'm not sure about #2. Is it really that good idea to extend types? Or to be precise — to extend non-abstract classes? It leads to unintuitive behavior: >
by deno 16y ago
I'm not sure about #2. Is it really that good idea to extend types? Or to be precise — to extend non-abstract classes?
It leads to unintuitive behavior:
>>> IntField(5, 'abc') is IntField(5, 'abc')
False
whereas
>>> int(5) is int(5)
True
also:
>>> IntField(5, 'abc') == 5
True
not to mention:
>>> IntField(5, 'abcd') == IntField(5, 'xyz')
True
IMO this would be better, more flexible approach:
class MyIntField(object):
@property
def val(self):
return self._val
@property
def name(self):
return self._name
def __init__(self, val, name):
self._val = val
self._name = name
def __eq__(self, other):
return (self.val == other.val) and \
(self.name == other.name)