Verfasst: Samstag 18. April 2009, 16:13
Barrabas: Nenn es lieber Instanzmethode, eine Klassenmethode ist was anderes (help(classmethod)). Und amount ist ein Attribut des Objektes, nicht der Klasse.
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
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)
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