How to create functors?

Robert Dailey rcdailey at gmail.com
Tue Aug 18 16:36:07 EDT 2009


On Aug 18, 3:31 pm, Duncan Booth <duncan.bo... at invalid.invalid> wrote:
> Robert Dailey <rcdai... at gmail.com> wrote:
> > Hello,
>
> > I want to simply wrap a function up into an object so it can be called
> > with no parameters. The parameters that it would otherwise have taken
> > are already filled in. Like so:
>
> >       print1 = lambda: print( "Foobar" )
> >       print1()
>
> > However, the above code fails with:
>
> >   File "C:\IT\work\distro_test\distribute_radix.py", line 286
> >     print1 = lambda: print( "Foobar" )
> >                          ^
> > SyntaxError: invalid syntax
>
> > How can I get this working?
>
> def print1():
>     print "Foobar"
>
> It looks like in your version of Python "print" isn't a function. It always
> helps if you say the exact version you are using in your question as the
> exact answer you need may vary.

Seems like it works fine on everything else except for print(). For
example:

print1 = lambda: MyFunction( "FooBar" )

The syntax above is accepted by the interpreter.



More information about the Python-list mailing list