[Python-de] auf Variablen zugreifen?
Hartmut Goebel
h.goebel at goebel-consult.de
Mit Jul 20 10:21:21 CEST 2005
Hallo,
Diez B. Roggisch schrieb:
>> Sicher? Hab grad folgendes im Interpreter getestet und es ging:
>>
>> var=4
>> neueVar="(%s)" % var
>> print neueVar
>>
>> liefert "(4)"
>>
>> Ich denke im Gegensatz zum einfachen Verketten von Strings, wendet die
>> Substitution durchaus str() auf die Variablen an.
>
>
> Mag sein das ich da etwas generalisiert habe. Das hier geht nämlich nicht
>
>>>> "%i" % "5"
> TypeError: int argument required
>
> Und str() kann ja auch uU nicht sein, was man wirklich haben möchte.
Tja, etwas Theorie und das Lesen Handbuchs machen das Leben klarer :-)
'%s' String (converts any python object using str())
'%r' String (converts any python object using repr())
'%i' Signed integer decimal.
Damit sollte klar sein, weshalb
'%s'% 4
funktioniert und
'%i' % "4"
eben nicht.
Aber das geht auch: Eine Klasse, die __int__ unterstützt.
>>> class I:
... def __init__(self, attr):
... self.attr = attr
... def __int__(self):
... return int(self.attr)
...
>>> print '%i' % I("4")
4
>>>
--
Schönen Gruß - Regards
Hartmut Goebel
| Hartmut Goebel | IT-Security -- effizient |
| h.goebel at goebel-consult.de | www.goebel-consult.de |