Skip to main content

anonymous inline functions in python

Project description

fonc

multiline inline anonymous functions in python

>>> from fonc import fonc
>>> [
...     fonc("""
... def x(input): # doesn't matter what this function is called
...     value = input * 3.14
...     return int(value)
...     """)(value) for value in [1, 2, 3, 4]
... ]
[3, 6, 9, 12]

why would you do this terrible thing

:) :) :) :) :) :) :) :) :) :) :) :)

does this pollute my global namespace?

nope!

imagine this inline function:

>>> from fonc import fonc
>>> [
...     fonc("""
... def x(input): # doesn't matter what this function is called
...     value = input * 3.14
...     return int(value)
...     """)(value) for value in [1, 2, 3, 4]
... ]
[3, 6, 9, 12]

One might imagine that this means that the x function name is overwritten to the global namespace. It is not!

>>> x(1)
NameError: name 'x' is not defined

how this works pls?

  • parse the string and determine the name of the defined function
  • replace that with a known random value
  • replace calls to that inline function with calls to the renamed function

never-asked questions

  • Do I have access to global vars inside this function?

    ya

  • Can I use this in production?

    absolutely not u fool

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fonc-0.2.0.tar.gz (3.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page