guten Tag zusammen,
ich wollte gerne in Python eine Klasse als Parameter übergeben, wie unter C++ template oder ähnliches. Kann man das machen? Wenn ja, wie bitte gebe ein Hint!
MfG
HL
can Class als Parameter in Python übergeben, wie unter C++
Habe ich das richtig verstanden?
Du willst eine Klasseninstanz z.B. einer anderen Klasse übergeben?
Wenn ja:
class a:
def __init__(self,...
......
class b:
def __init__(self,wert,...
......
wert = a(...)
b(wert,...)
In der Klasse b kannst du dann einzelne Methoden der Klasse a aufrufen.
Gruss,
Toni
Du willst eine Klasseninstanz z.B. einer anderen Klasse übergeben?
Wenn ja:
class a:
def __init__(self,...
......
class b:
def __init__(self,wert,...
......
wert = a(...)
b(wert,...)
In der Klasse b kannst du dann einzelne Methoden der Klasse a aufrufen.
Gruss,
Toni
hallo Toni,
Danke. Ok, als Objekte wie andere int, str..., Eigentlich wollte ich wissen, ob man es typsicher angeben, z.B. es akzeptiert nur bestimmte Klasse/Objekte, z.B ich wollte es nur int, aber nicht string akzeptieren!
Danke noch einmal!
HL
Danke. Ok, als Objekte wie andere int, str..., Eigentlich wollte ich wissen, ob man es typsicher angeben, z.B. es akzeptiert nur bestimmte Klasse/Objekte, z.B ich wollte es nur int, aber nicht string akzeptieren!
Danke noch einmal!
HL
Ich verstehe deine Antwort nicht ganz.
Du kannst den Typ einer Variable bestimmen indem du folgendes
eingibst:
type(Variablenname)
Dann kannst du prüfen welcher Typ deine Variable hat.
Was bedeutet:
"...z.B. es akzeptiert nur bestimmte Klasse/Objekte, z.B ich wollte es nur int, aber nicht string akzeptieren!"
Du musst nicht wie in C sagen, dass du einen int übergeben willst.
Ich glaub in C ging das so:
void (char,int,....)
in Python:
def(s,i,...) # s ist eine char-Variable und i eine Integer.
Wenn du prüfen willst was du übergibst, benutze einfach type().
In einem if-Konstrukt kannst du dann dies überprüfen.
Gruss,
Toni
Du kannst den Typ einer Variable bestimmen indem du folgendes
eingibst:
type(Variablenname)
Dann kannst du prüfen welcher Typ deine Variable hat.
Was bedeutet:
"...z.B. es akzeptiert nur bestimmte Klasse/Objekte, z.B ich wollte es nur int, aber nicht string akzeptieren!"
Du musst nicht wie in C sagen, dass du einen int übergeben willst.
Ich glaub in C ging das so:
void (char,int,....)
in Python:
def(s,i,...) # s ist eine char-Variable und i eine Integer.
Wenn du prüfen willst was du übergibst, benutze einfach type().
In einem if-Konstrukt kannst du dann dies überprüfen.
Gruss,
Toni
Hallo Toni,
Danke, ich verstehe langsam
ich wollte meine Klasse nicht alle Objekte akzeptieren, sondern nur bestimmte. Es scheint mir in Python nicht zu gehen, so muss ich selbst überprüfen, before ich verwende, eventuell Exception erzeugen
Danke noch einmal!
HL
Danke, ich verstehe langsam
ich wollte meine Klasse nicht alle Objekte akzeptieren, sondern nur bestimmte. Es scheint mir in Python nicht zu gehen, so muss ich selbst überprüfen, before ich verwende, eventuell Exception erzeugen
Danke noch einmal!
HL
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Sieh dir mal PyProtocols an, das klingt genau nach dem was du suchst.Anonymous hat geschrieben:ich wollte meine Klasse nicht alle Objekte akzeptieren, sondern nur bestimmte. Es scheint mir in Python nicht zu gehen, so muss ich selbst überprüfen, before ich verwende, eventuell Exception erzeugen
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Wie schon erwähnt, wird es unter Python etwas anders gehandhabt. Wenn deine Funktion einen int "erwartet", gehst du mit ihr einfach wie mit einem Integer um, wenn das übergebene Objekt das nicht unterstützt, wird eine Exception ausgelöst.
Überlege dir zweimal, ob du wirklich auf den Typ testen muss. Wenn dein int-Parameter z.B. eine Größenangabe sein soll, kann es dir egal sein, ob es ein richtiger int ist, oder ein Datenbankobjekt (grob gesprochen)
Überlege dir zweimal, ob du wirklich auf den Typ testen muss. Wenn dein int-Parameter z.B. eine Größenangabe sein soll, kann es dir egal sein, ob es ein richtiger int ist, oder ein Datenbankobjekt (grob gesprochen)
GvR hat zum Thema Typen mal sinngemäß gesagt:
"We don't care, we write unit tests."
Genau das solltest Du auch tun.
fs111
"We don't care, we write unit tests."
Genau das solltest Du auch tun.
fs111
Pydoc-Integration in vim - Feedback willkommen: http://www.vim.org/scripts/script.php?script_id=910