[Python-Dev] PEP or formal description of Python module structure
Xavier Combelle
xavier.combelle at free.fr
Mon Oct 15 14:15:02 CEST 2012
Le 15/10/2012 09:43, anatoly techtonik a écrit :
> Hi,
>
> I am trying to figure out what Python module is internally (WIP
> http://wiki.python.org/moin/techtonik)? Is there already a good piece
> of documentation that I missed that can answer all these questions
> already?
>
> ...what properties do you get in empty Python module (__doc__, __name__, ...)?
> ...what of those properties are set by the language standard
> (required) and what are just optional helpers from/for the
> interpreter?
> ...what is the proper way to inspect modules and access their
> properties at runtime?
> ...what optional properties are defined by language standard that can
> you set implicitly?
> ...how each internal property is used by the interpreter and when it appeared?
> ...what is the proper way to create module namespace at run-time?
>
> I'd like to see some kind of reference of properties with
> classification required/optional, purpose, when set, who uses, how to
> approach etc. in one place.
>
> --
> anatoly t.
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/xavier.combelle%40free.fr
from http://docs.python.org/reference/datamodel.html
Modules
Modules are imported by the import
<http://docs.python.org/reference/simple_stmts.html#import>
statement (see section /The import statement/
<http://docs.python.org/reference/simple_stmts.html#import>). A
module object has a namespace implemented by a dictionary object
(this is the dictionary referenced by the func_globals attribute of
functions defined in the module). Attribute references are
translated to lookups in this dictionary, e.g., m.x is equivalent to
m.__dict__["x"]. A module object does not contain the code object
used to initialize the module (since it isn't needed once the
initialization is done).
Attribute assignment updates the module's namespace dictionary,
e.g., m.x = 1 is equivalent to m.__dict__["x"] = 1.
Special read-only attribute: __dict__ is the module's namespace as a
dictionary object.
*CPython implementation detail:* Because of the way CPython clears
module dictionaries, the module dictionary will be cleared when the
module falls out of scope even if the dictionary still has live
references. To avoid this, copy the dictionary or keep the module
around while using its dictionary directly.
Predefined (writable) attributes: __name__ is the module's name;
__doc__ is the module's documentation string, or None if
unavailable; __file__ is the pathname of the file from which the
module was loaded, if it was loaded from a file. The __file__
attribute is not present for C modules that are statically linked
into the interpreter; for extension modules loaded dynamically from
a shared library, it is the pathname of the shared library file.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20121015/dd187a6f/attachment.html>
More information about the Python-Dev
mailing list