Doubt about closure/function generation in bytecode

13 Jul
2013
13 Jul
'13
2:41 a.m.
Is there any semantic difference between
BUILD_TUPLE 0 LOAD_CONST <code object ... > MAKE_CLOSURE 0
and
LOAD_CONST <code object ...> MAKE_FUNCTION 0
?
In other words is there any difference between a function and a closure that doesn't capture anything? Is it just a speed optimization for a common case?
Andrea Griffini

15 Jul
15 Jul
2:06 a.m.
2013/7/12 Andrea Griffini agriff@tin.it:
Is there any semantic difference between
BUILD_TUPLE 0 LOAD_CONST <code object ... > MAKE_CLOSURE 0
and
LOAD_CONST <code object ...> MAKE_FUNCTION 0
?
In other words is there any difference between a function and a closure that doesn't capture anything? Is it just a speed optimization for a common case?
It probably has more to do with the fact that nested scopes with added much later in Python's history than functions.
-- Regards, Benjamin
3614
Age (days ago)
3616
Last active (days ago)
1 comments
2 participants
participants (2)
-
Andrea Griffini
-
Benjamin Peterson