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@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 statement (see section The import statement). 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.