Function mistaken for a method
Maric Michaud
maric at aristote.info
Thu Jun 1 07:29:14 EDT 2006
Le Jeudi 01 Juin 2006 13:12, Eric Brunel a écrit :
> class C1(C):
> f = int
int is not a function but a type, but it's callable so int(0) return 0.
> class C2(C):
> f = lambda x: x != 0
lambda is a function, applied as a class attribute it becomes a method so it's
called with a first parameter representing the instance, self.f(0) in the
__init__ becomes C2.f(self, 0), so the lambda should be :
f = lambda s, x: x != 0 # s for self, some poeple use _
this exactly the same as :
def f(self, val) :
return x != 0
(that lambda will return True or False i expect this is not what you want)
--
_____________
Maric Michaud
_____________
Aristote - www.aristote.info
3 place des tapis
69004 Lyon
Tel: +33 426 880 097
More information about the Python-list
mailing list