Python Grundlagen 2

Addendum zu Fragen die im Workshop aufkamen

Man kann in __init__.py eine Liste __all__ anlegen, die alle Module angibt, die bei from <package> import *  mit importiert werden.

http://docs.python.org/2/tutorial/modules.html#importing-from-a-package

Nach der Python-Dokumentation wird __radd__ (und alle anderen arithmetischen right-side Operatoren) nur dann aufgerufen, falls das Objekt auf der linken Seite die jeweilige Operation nicht unterstützt, und beide Objekte von unterschiedlichem Typ sind.

Beispiel:

   1 # x has __add__ method
   2 # y has __add__ and __radd__ method
   3 # z has neither
   4 
   5 a = x + y       # x.__add__(y) is called
   6 b = z + y       # y.__radd__(z) is called
   7 c = x + z       # x.__add__(z) is called
   8 d = y + z       # y.__add__(z) is called
   9 e = z + x       # TypeError: unsupported operand type(s) for +

http://docs.python.org/2/reference/datamodel.html?highlight=__radd__#object.__radd__

lugfrankfurt: Programmierworkshop/Python/termine/2012-10-27/material (zuletzt geändert am 2012-10-30 13:52:18 durch SteffenBauer)