Hi Jetzt will ich doch noch mal meinen Senf dazugeben. Am 15.12.2005 17:57:03 schrieb tanzer@swing.co.at:
if type(foo) in (list, tuple):
funktioniert 1. wunderbar
Fuer kleine Werte von `funktioniert` und infinitesimale Werte von `wunderbar`.
Das erstemal wenn ein Objekt einer Klasse
class listx(list) : # whatever
daherkommt, geht der type-Vergleich in die Hose.
Ja natuerlich, muss ja auch so sein. type liefert den Typ eines Objekts und isinstance überprüft ob ein Objekt von einem bestimmten Typ abgeleitet (instanziert) ist. Das sind fuer mich erstmal 2 grundverschiedene Dinge, auch wenn sich die Einsatzgebiete haeufig ueberschneiden. Der Typ des Objektes einer Klasse 'listx' ist nunmal 'listx' und nicht 'list'. Gerade bei den eingebauten Datentypen sehe ich allgemein als grossen Vorteil zu wissen, ob ein Objekt 'list' oder 'listx' als Ursprung hat. Weil bei 'list' als Datentyp kann ich mich auf ein bestimmtes Verhalten verlassen, 'listx' kann dagegen kann so ziemlich alles sein.[*] Wenn ich bei type einen unbekannten Datentyp zurueckbekomm, kann ich ja noch mit issubclass testen, ob der Typ von list abgeleitet wurde. cu boesi [*] Natuerlich ist es richtig mieser Stil, 'listx' so zu verunstalten, dass es sich nicht mehr wie 'list' verhaelt. -- |¯|/¯/¯¯¯\|¯| |¯|¯| |¯|/¯/¯¯¯\|¯¯¯¯\|¯¯¯¯ http://| / / /¯\ | | | | | | / / /¯\ | (¯) | |¯¯ smb://| \ \ \_/ | `¯´ | |__| \ \ \_/ | ¯ /| ¯| ftp://|_|\_\___/|_|¯|_|____|_|\_\___/|_|¯¯ |_|¯ _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de