lunar hat geschrieben: "str()" ist auch keine Funktion, sondern der Python-Typ für Bytestrings. ...
Hallo,
Und ein Einspruch.
Hier ein Auszug aus Python Referenz
David M. Beazley
Vorwort von Guido van Rossum
Seite 51:
4.5 Typ-Konvertierung
Manchmal ist es notwendig, zwischen eingebauten Typen zu konvertieren. Folgende eingebaute Funktionen ermöglichen eine explizite Typ-Konvertierung:
Funktion.....................Beschreibung
int(x) ........................Konvertiert x in eine Ganzzahl
long(x)......................Konvertiert x in eine lange Ganzzahl
float(x) .....................Konvertiert x in eine Fließkommazahl
complex(real [,imag])..Erzeugt eine komplexe Zahl str(x)....................Konvertiert Objekt x in eine String-Darstellung
repr(x)..................... Konvertiert Objekt x in einen String-Ausdruck
eval(x)......................Wertet einen String aus und gibt ein
In [285]: str
Out[285]: <type 'str'>
In [286]: pow
Out[286]: <built-in function pow>
In [287]: class A(pow): pass
.....:
---------------------------------------------------------------------------
<type 'exceptions.TypeError'> Traceback (most recent call last)
/home/bj/<ipython console> in <module>()
<type 'exceptions.TypeError'>: Error when calling the metaclass bases
cannot create 'builtin_function_or_method' instances
In [288]: class B(str): pass
.....:
In [289]: issubclass(str, basestring)
Out[289]: True
Falsch wäre ein hartes Wort. Ungenau könnte man sagen. Man kann `str()` ja aufrufen und bekommt ein Exemplar vom Typ `str` zurück, wobei das eben die Zeichenkettendarstellung vom übergebenen Argument ist. `str` verhält sich da also wie eine Funktion.
OK,
Ich gebe mich geschlagen.
ist wohl eine Klasse:
>>> help(str)
ergibt
Help on class str in module __builtin__:
class str(basestring)
| str(object) -> string
|
| Return a nice string representation of the object.
| If the argument is a string, the return value is the same object.
|
| Method resolution order:
| str
| basestring
| object
|
| Methods defined here: