[Python-de] Typ-Prüfung
Fritz Cizmarov
fritz at sol.at
Mit Sep 17 16:35:59 CEST 2003
Am Wed, 17 Sep 2003 13:55:39 +0200
Schrieb "Lutz Schröer" <latz at elektroelch.de>:
> Hai,
Hallo Lutz,
> 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(''))
>
ich würde das so machen
def myFunc(s):
if type(s) is not type([]):
s = [s]
> 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).
geht auch mit 1.5 und Unicode ist auch kein problem
> 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?
ich denke mal 2.1 kann man heutzutage voraussetzen. Neue Projekte, just
for fun, mache ich auch nur noch für 2.3
Gruß
Fritz