Gregor Lingl
2003-05-28 14:15:44 UTC
Hallo pythonistas!
Ich m?chte gerne folgendes wissen:
Ich leite eine Klasse in folgender Weise vom
pass
L scheint list als Konstruktor zu ben?tzen, oder
es verh?lt sich wenigstens so als ob.
def __init__(self, x):
self.x = x
Der Konstruktor von M konstruiert nur leere Listen.
Wie kann ich einen Konstruktor definieren, der zum Beispiel
als erstes Argument eine Sequenz ?bernimmt um sich als Liste
zu initialisieren und dann noch weitere Argumente f?r andere
Zwecke?
def __init__(self, seq, x):
self.x = x
self.extend(seq)
Mir scheint jedoch, dass das nicht der kanonsche Weg ist, solche
Dinge zu erledigen, denn er h?ngt von der Existenz der Methode
extends ab, die es nur f?r Listen gibt. Dagegen stellt sich das
angegebene Problem allgemein bei der Definition von Unterklassen
f?r eingebauten Typen.
Wer wei?, wie das "regelgerecht" gemacht wird?
mit freundlichen Gr??en,
Gregor
Ich m?chte gerne folgendes wissen:
Ich leite eine Klasse in folgender Weise vom
pass
a = L()
a
[]a
b = L([1,2,3])
b
[1, 2, 3]b
c = L("xyz")
c
['x', 'y', 'z']c
L scheint list als Konstruktor zu ben?tzen, oder
es verh?lt sich wenigstens so als ob.
def __init__(self, x):
self.x = x
e = M(3)
e
[]e
e.x
3Der Konstruktor von M konstruiert nur leere Listen.
Wie kann ich einen Konstruktor definieren, der zum Beispiel
als erstes Argument eine Sequenz ?bernimmt um sich als Liste
zu initialisieren und dann noch weitere Argumente f?r andere
Zwecke?
def __init__(self, seq, x):
self.x = x
self.extend(seq)
f = N( (3,4,5), "C" )
f
[3, 4, 5]f
f.x
'C'Mir scheint jedoch, dass das nicht der kanonsche Weg ist, solche
Dinge zu erledigen, denn er h?ngt von der Existenz der Methode
extends ab, die es nur f?r Listen gibt. Dagegen stellt sich das
angegebene Problem allgemein bei der Definition von Unterklassen
f?r eingebauten Typen.
Wer wei?, wie das "regelgerecht" gemacht wird?
mit freundlichen Gr??en,
Gregor