5 ms·
In Python semantics, indeed, 'print' does need to be looked up each time!
by SnowflakeOnIce 4y ago
In Python semantics, indeed, 'print' does need to be looked up each time!
- n8ta 4y agoSurely in the common case this can be optimized away??? Could you add some detail?
- SnowflakeOnIce 4y ago'print' is a global function that can be overridden by user code. The most obvious way to do this would be to define a new function named 'print', but it could also be overridden through less direct means, like from an 'eval' call, manually manipulating the global variables mapping ('globals()'), or by manipulating the '__builtins__' mapping. Maybe this happens in another thread! Statically reasoning about all this (as would be required for optimization) is difficult. Not totally impossible, but not something that the canonical CPython implementation tries to do.