geloest: Einen Dialog aus einem Dialog aufrufen

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Benutzeravatar
xWolf
User
Beiträge: 62
Registriert: Sonntag 2. November 2008, 01:21
Wohnort: China

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
Wolf
BlackJack

`str` ist trotzdem ein Typ und keine Funktion:

Code: Alles auswählen

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
Benutzeravatar
xWolf
User
Beiträge: 62
Registriert: Sonntag 2. November 2008, 01:21
Wohnort: China

Ist denn das von mir zitierte Buch nun auch falsch?

Oder gibt es vielleicht eine Funktion und einen Type?


Wolf
BlackJack

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.
Benutzeravatar
xWolf
User
Beiträge: 62
Registriert: Sonntag 2. November 2008, 01:21
Wohnort: China

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:

Wolf
Antworten