[Python-ideas] Should __builtins__ have some kind of pass-through print function, for debugging?
Clint Hepner
clint.hepner at gmail.com
Fri Apr 27 12:35:22 EDT 2018
> On 2018 Apr 27 , at 9:05 a, Steven D'Aprano <steve at pearwood.info> wrote:
>
> Actually, I think I can think of a way to make this work, if we're
> willing to resurrect some old syntax.
>
> On Fri, Apr 27, 2018 at 09:27:34PM +1000, Steven D'Aprano wrote:
>> I think that this is either a great idea or pointless, depending on what
>> the built-in actually does.
>>
>> If all it does is literally the debug print function you give:
>>
>>> # "debug print": prints and then returns its argument
>>> def dp(obj):
>>> print(repr(obj))
>>> return obj
>>
>> then it is just a trivial helper as you say, and in my opinion too
>> trivial to bother making a builtin.
>
> I changed my mind... let's add this as a builtin, under the name
> debugprint. It is a completely normal, non-magical function, which takes
> four (not one) arguments:
>
>
> def debugprint(obj, lineno=None, module=None, source=None):
> [magic elided]
>
> Now let's put all the magic into some syntax. I'm going to suggest
> resurrecting the `` backtick syntax from Python 2. If that's not
> visually distinct enough, we could double them: ``expression``.
I don't want to hijack the thread on a digression, but instead of bringing `` back for
just this one purpose, it could be used as a prefix to define a candidate
pool of new keywords.
``debugprint(obj) # instead of ``obj`` meaning debugprint(obj)
Any ``-prefixed word would either be a defined keyword or a syntax error.
--
Clint
More information about the Python-ideas
mailing list