blackbird hat geschrieben:Code: Alles auswählen
>>> class MyClass(object):
... def foo(self, val):
... self._foo = val
... foo = property(lambda s: s._foo, foo)
...
>>> m = MyClass()
>>> m.foo = 1, 2
>>> m.foo
(1, 2)
Da werden keine zwei Parameter übergeben sondern ein ``tuple``, was man auch nicht so kompliziert schreiben muss (=Das lambda macht das ganze Komplizierter. Besser Explizit eine get und set Methode angeben.):
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
class MyClass(object):
def __init__(self):
self._foo = None
def set_foo(self, val):
self._foo = val
def get_foo(self):
return self._foo
foo = property(fset=set_foo, fget=get_foo)
del set_foo
del get_foo
m = MyClass()
m.foo = 1, 2, 3, 4 # = (1,2,3,4) = 4er-Tuple != 4 Parameter
print m.foo #-> (1, 2, 3, 4)
Wie gesagt, das was der OP wollte geht nicht, sondern nur über den Umweg eines Containers (tuple, list, ...), was auch **Sinn** macht.