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
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to