overriding built-ins

Alex Martelli aleax at aleax.it
Sun Sep 28 16:44:13 EDT 2003


dan wrote:

> I really have two related questions.
> 
> 1) Is it possible (without recompiling and changing the core Python
> behavior) to write functions that utilize the same syntax as built-in
> functions?

Yes, but don't confuse functions with statements.  It seems you
are systematically doing just that.

>  IE, can I create a function that does this:
> 
>>>>printCaps "hello"          #note no parentheses
> HELLO

No.  You are thinking of "imitating" print, which is a STATEMENT,
*NOT* a built-in function.

Examples of built-in functions are input, hex, max.  What they have
in common, which sharply distinguishes them from statements: they
use perfectly normal function syntax, and their names are not in any
way reserved.

> 2) Is it possible to do this with the built-in keywords themselves, ie
> override functions such as print?

print is a statement, not a function.  No, there is no way to use
any Python keyword except as Python uses it.


Alex





More information about the Python-list mailing list