So legen Sie eine Python-Eigenschaft in __init __ @ fe
Ich habe eine Klasse mit einem Attribut, das ich in eine Eigenschaft verwandeln möchte, aber dieses Attribut wird in @ festgeleg__init__
. Ich bin mir nicht sicher, wie das gemacht werden soll. Ohne die Eigenschaft in @ zu setz__init__
das ist einfach und funktioniert gut
import datetime
class STransaction(object):
"""A statement transaction"""
def __init__(self):
self._date = None
@property
def date(self):
return self._date
@date.setter
def date(self, value):
d = datetime.datetime.strptime(value, "%d-%b-%y")
self._date = d
st = STransaction()
st.date = "20-Jan-10"
Aber sobald die Initialisierung in @ erfolgen mu__init__
es wird komplizierter und ich bin mir nicht sicher, wie ich vorgehen soll.
class STransaction(object):
"""A statement transaction"""
def __init__(self, date):
self._date = None
Seltsamerweise scheint das Folgende zu funktionieren, riecht aber sehr schlecht.
class STransaction(object):
"""A statement transaction"""
def __init__(self, date):
self._date = None
self.date = date
@property
def date(self):
return self._date
@date.setter
def date(self, value):
d = datetime.datetime.strptime(value, "%d-%b-%y")
self._date = d
Was ist die richtige Vorgehensweise zum Festlegen von Eigenschaften in__init__
?
anke, Aaro