* Denis Doria:
I thought in something like:
class A:
def __init__(self, foo = None, bar = None):
set_foo(foo)
self._bar = bar
def set_foo(self, foo):
if len(foo) > 5:
raise <something>
_foo = foo
foo = property(setter = set_foo)
But looks too much like java
Yeah.
If member _foo has this constraint regardless then it's logically part of that
member's type, so make it a type:
class _Foo:
def __init__( self, seq ):
if seq is None:
self.items = []
elif len( seq ) > 5:
raise <something>
else:
self.items = seq
class A: # Your example
def __init__( self, foo = None, Bar = None ):
self._foo = _Foo( foo )
self._bar = bar
def set_foo( self, foo ):
self._foo = _Foo( foo )
foo = property( setter = set_foo )
Cheers & hth.,
- Alf
--
http://mail.python.org/mailman/listinfo/python-list