|
|
|
|
|
by deno
5638 days 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)
|
|