Hallo mal wieder...
Ich würde gern in meinem Hauptscript den Modulen Klassen und Funktionen anbieten. Also ist die eigentliche Frage: Wie kann ein Modul auf Funktionen, Klassen oder Variablen seines MainScriptes zugreifen?
Danke im Vorraus
pSy
Module und Klassen
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Du könntest z.B. dem (wie Du sagst) Modul sagen, wer es aufgerufen hat:
Gruß, mawe
Du könntest z.B. dem (wie Du sagst) Modul sagen, wer es aufgerufen hat:
Code: Alles auswählen
# Datei: A.py
from B import B
class A:
def __init__(self):
b = B(self)
def say_hello(self):
print "hello from A"
A()
Code: Alles auswählen
# Datei: B.py
class B:
def __init__(self, master):
self.master = master
self.master.say_hello()
danke für den tipp... da hab ich glatt noch eine kleine frage.
man kann doch mit bestimmte funktionen eines modules direkt importieren.
kann man die auch umbenennen um doppelte bezeichnungen zu vermeiden,
so wie, oder muss man dann den normalen weg gehen: ?
man kann doch mit
Code: Alles auswählen
from x import y
kann man die auch umbenennen um doppelte bezeichnungen zu vermeiden,
so wie
Code: Alles auswählen
from x import y as xy
Code: Alles auswählen
import x
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Probiers doch einfach aus!
Sollte funktionieren. Wird recht häufig gemacht, um lange Namen abzukürzen. Man sieht sehr oft
Gruß, mawe
Probiers doch einfach aus!

Code: Alles auswählen
# Datei: A.py
from B import B as C
class A:
def __init__(self):
b = C(self)
....
Code: Alles auswählen
import Tkinter as tk
import Numeric as num
...
und wie überprüfe ich ob der zurückgegebene wert wirklich ne instanz ist?
denn type gibt zwar <type 'instance'> zurück, aber der begriff instance ist nicht festgelegt, wie zB str, int, dict oder list.
gibts da möglichkeiten typen zuzuweisen?
das einzigste was bisher klappt istwas aber irgendwie blöd ist, da ich erst ne klasse brauche um so ein objekt zu bekommen.
denn type gibt zwar <type 'instance'> zurück, aber der begriff instance ist nicht festgelegt, wie zB str, int, dict oder list.
gibts da möglichkeiten typen zuzuweisen?
das einzigste was bisher klappt ist
Code: Alles auswählen
if type(self) == type(instobj)
Hi, dafür gibt es das Modul types:
Code: Alles auswählen
import types
class A:
pass
print types.InstanceType == type(A())
ah, wunderbar... jetzt haben sich erstmal die meisten fragen geklärt.
danke für die hilfe...
danke für die hilfe...
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi pSy,
Typeüberprüfungen kannst Du auch mit der eingebauten Funktion isinstance(obj, class-or-type-or-tuple) machen.
isinstance prüft ob das objekt vom angegebenen Typ ist oder die Klasse des Objekts vom angegebenen Typ abgeleitet wurde. Es kann auch ein Tuple mit mehreren Typen/Classen übergeben werden z.B. isinstance(a, (A, B, C))
Gruß
Dookie
Typeüberprüfungen kannst Du auch mit der eingebauten Funktion isinstance(obj, class-or-type-or-tuple) machen.
Code: Alles auswählen
class A(object):
pass
a = A()
print "isinstance(a, A) -> %s" % str(isinstance(a, A))
print "isinstance(a, tuple) -> %s" % str(isinstance(a, tuple))
print "isinstance(a, object) -> %s" % str(isinstance(a, object))
Gruß
Dookie
[code]#!/usr/bin/env python
import this[/code]
import this[/code]