[Python-de] Typ-Prüfung
Lutz Schröer
latz at elektroelch.de
Mit Sep 17 14:55:39 CEST 2003
Hai,
nachdem Rainer mich einigermaßen überzeugt hat, das man Ausnahmen
wirklich nur in Ausnahmen nutzen sollte :), stellt sich mir jetzt die
Frage, wie ich folgendes eigentlich einfache Problem auch einfach
lösen kann:
Ich habe eine Funktion, der ich entweder einen einzelnen String oder
eine Liste mit Strings übergeben möchte. Um anschliessend einheitlich
mit einer Liste weiterarbeiten zu können, habe ich mir folgendes
Konstrukt ausgedacht:
def myFunc(s):
if isString(s):
s = [s]
und isString sieht so aus:
def isString(s):
try: s += ' '
except: return 0
else: return 1
Wie kann ich das auch ohne Exception lösen? Im Kochbuch wird auch
folgende Variante angeboten:
def isString(s):
return isinstance(s, type(''))
Das funktioniert aber erst ab Python 2.0 und auch nicht mit Unicode.
Da es sich um ein Modul handelt, das ich veröffentlichen will, sollte
es möglichst universell, am besten Version-1.5- kompatibel und kein
Code-Monster sein (ich will's wenigstens selber noch verstehen).
Wobei sich mir auch gerade die Frage stellt, ob man beim Erstellen
von Modulen noch auf die Version 1.5 Rücksicht nehmen sollte (und wie
lange noch) oder eine andere Version (welche?) als allgemein vorrätig
und benutzt vorraussetzen kann?
Lutz
---
elektroelch.de -- free news for a free world