It seems like getter is defined in such way that it passes only 'self':


class FunDict(dict):
        def __init__(self):
                self.fundict = dict()

        def fget(self, fun):
                return fundict[fun.func_name]

        def fset(self, newfun):
                self.fundict[newfun.func_name] = newfun

        newfun = property (fget, fset)

        
>>> a=FunDict()
>>>
>>> a.newfun=f1
>>>
>>> a.newfun('f1')

Traceback (most recent call last):
  File "<pyshell#67>", line 1, in <module>
    a.newfun('f1')
TypeError: fget() takes exactly 2 arguments (1 given)



Is it possible to pass more than one argument to fget function?

I know: I can define a function with property name ('newfun' in the example) and call it with more arguments. But then I do not get the benefits of setter and property in general!

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to