Habe (vermutlich) ein Problem mit den Namensräumen von Variablen.
Folgende Problemstellung:
Es gib die zwei Objekte A und B mit ihren Variblen=Attributen der Klasse K. Wenn ich Python bis hierhin richtig verstehe, haben die Klassenfunktionen als estes Attribut immer eine Klasseninstance (self, this).
Wenn mit den beiden Objekten A und B arbeiten möchte kann ich entweder
die eine Instance zum aufrufen einer Klassenfunktion und das andere als Paramter verwenden, oder ich benutzt eine Fukntion die beide Objekte als Parameter benutzt.
Beispiel vergleiche zwei Punkte: A.equals(B) oder equals(A,B)
Jetzt bringe ich noch einen Toleranz T in Spiel, in deren Abhängigkeit der Vergleich ausgewertet wird.
Beispiel:
Code: Alles auswählen
class K:
def equals(self, other,tol): irgendetwas
def equals(x,y,tol): irgendetwas
A.equals(B,T) oder equals(A,B,T)
Die Funktion fragt diese dann einfach ab. Da T aber nicht wie Math.Pi eine Konstante sein sollen, sondern bei Bedarf geänder werden kann, stehe ich vor einen Problem. Ich möcht T nicht ohne weiteres als global defineren,
da ich sorge habe sie konnte ungewollte geändert werden - wie weit lasse ich mit einer solchen Definition die Hosen im Namensraum runter?
Code: Alles auswählen
__Tol=10**-3
def setTol(value): __Tol=value
Code: Alles auswählen
def equals():
if x<=equals.tol: irgendetwas
def setTol(value): equals.tol=value
Kann mir hier jemand helfen bzw. einen Hinweise in Form einer guten Doku für diese Problematik geben?
Grüße Bernd