How to use a class property to store function variables?

MRAB python at mrabarnett.plus.com
Wed Apr 28 04:09:25 CEST 2010


Terry Reedy wrote:
> On 4/27/2010 7:36 PM, GZ wrote:
>> I want to store a reference to a function into a class property.
>>
>> So I am expecting that:
>>
>> class A:
>>       fn = lambda x: x
>>
>> fn = A.fn
>> fn(1)
>>
>> Traceback (most recent call last):
>>    File "<string>", line 1, in<string>
>> TypeError: unbound method<lambda>() must be called with A instance as
>> first argument (got int instance instead)
>>
>>
>> The problem is that A.fn is treated as a bounded method. I really want
>> A.fn to be a variable that stores a reference to a function. Is there
>> any way to achieve this?
> 
> Use 3.1, though you will have the same issue when calling it and same 
> fix that Chris gave.
> 
Python 3.1.1 (r311:74483, Aug 17 2009, 17:02:12) [MSC v.1500 32 bit 
(Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
 >>> class A:
	fn = lambda x: x

	
 >>> fn = A.fn
 >>> fn(1)
1



More information about the Python-list mailing list