How does "__doc__ % globals()" work?

Ethan Furman ethan at stoneleaf.us
Mon Apr 12 19:39:08 EDT 2021


On 4/12/21 3:06 PM, Jaime wrote:
 > Hi all. Line 102 of https://github.com/python/peps/blob/master/pep2html.py says:
 >
 > print(__doc__ % globals(), file=out)
 >
 > I realise that globals() is a standard-library
 > built-in function that returns a dictionary representing the current
 > global symbol table, and that the result of this expression is the
 > value of the dictionary where the key is "__doc__"
This is not correct.
There are a couple ways to use %-interpolation:
 some_name = 'Jaime'
 # simple
 `hello, %s` % (some_name, ) # hello, Jaime
 # keyed
 `hello, %(a_name)s` % {'a_name': 'Ethan'} # hello, Ethan
What you are seeing is the keyed version. So, if the module had, for example:
 version = 1.3
 author = 'GvR'
 date = '2021-04-12'
and the doc string was
 __doc__ = "version %(version)s was initially created by %(author)s"
then
 __doc__ % globals()
would substitute the `author` and `version` keys into __doc__, and printing that would yield
 version 1.3 was initially created by GvR
Note that extra keys are ignored.
--
~Ethan~


More information about the Python-list mailing list

AltStyle によって変換されたページ (->オリジナル) /