py/objfun: Implement function.__code__ and function constructor.
This allows retrieving the code object of a function using `function.__code__`, and then reconstructing a function from a code object using `FunctionType(code_object)`. This feature is controlled by `MICROPY_PY_FUNCTION_ATTRS_CODE` and is enabled at the full-features level. Signed-off-by: Damien George <damien@micropython.org>
This commit is contained in:
19
tests/basics/fun_code_micropython.py
Normal file
19
tests/basics/fun_code_micropython.py
Normal file
@@ -0,0 +1,19 @@
|
||||
# Test MicroPython-specific restrictions of function.__code__ attribute.
|
||||
|
||||
try:
|
||||
(lambda: 0).__code__
|
||||
except AttributeError:
|
||||
print("SKIP")
|
||||
raise SystemExit
|
||||
|
||||
|
||||
def f_with_children():
|
||||
def g():
|
||||
pass
|
||||
|
||||
|
||||
# Can't access __code__ when function has children.
|
||||
try:
|
||||
f_with_children.__code__
|
||||
except AttributeError:
|
||||
print("AttributeError")
|
||||
Reference in New Issue
Block a user