Eigenes Objekt?
Ich würde es wohl so implementieren(grob orientiert an jscience)
money.py
money.py
Code: Alles auswählen
from money import Money, Currency
EUR = Currency("EUR")
USD = Currency("USD")
# Hier leider Setter notwendig, da properties auf Klassen in python nicht-trivial sind
Currency.set_reference_currency(EUR)
USD.exchange_rate = 0.765872712
print Money(5, USD).convert_to(EUR)
print Money(10, EUR) + Money(5, USD)
Siehe Antwort 1: http://stackoverflow.com/questions/1285 ... assmethods , das war mir jedenfalls zuviel Stress für zwei Funktionen. Ich habs auch nur geschrieben, damit nicht irgendwer wegen dem Setter rummeckert...
So, jetzt hab ich das ganze ins Kassensystem eingebaut, funktioniert auch soweit.
JEtzt habe ich nur das Problem: Bei der Eingabe von Geldsummen in verschiedenen Methoden habe ich das Problem dass ich gleich alles wieder durch die Klasse Money jage, so wird die Einheit quasi wieder vergessen.
Habt ihr da eine Idee wie ich überprüfen kann, ob der Eingabewert der Klasse entspricht?
LG Chris
JEtzt habe ich nur das Problem: Bei der Eingabe von Geldsummen in verschiedenen Methoden habe ich das Problem dass ich gleich alles wieder durch die Klasse Money jage, so wird die Einheit quasi wieder vergessen.
Habt ihr da eine Idee wie ich überprüfen kann, ob der Eingabewert der Klasse entspricht?
LG Chris
-
- User
- Beiträge: 155
- Registriert: Freitag 29. Dezember 2006, 18:27
Hm, mal zu den Properties. Interessehalber, was spricht gegen das hier?
gibt mir
Code: Alles auswählen
class Meta(type):
def _set_foo(cls, foo):
print '_set_foo fuer', cls
cls._foo = foo
def _get_foo(cls):
print '_get_foo'
return cls._foo
foo = property(_get_foo, _set_foo)
class A(object):
__metaclass__ = Meta
class B(A):
pass
A.foo = 123
print A.foo
print B.foo
B.foo = 456
print A.foo
print B.foo
Code: Alles auswählen
_set_foo fuer <class '__main__.A'>
_get_foo
123
_get_foo
123
_set_foo fuer <class '__main__.B'>
_get_foo
123
_get_foo
456