Cómo configurar una propiedad de Python en __init__
Tengo una clase con un atributo que deseo convertir en una propiedad, pero este atributo se establece dentro de__init__
. No estoy seguro de cómo se debe hacer esto. Sin establecer la propiedad en__init__
esto es fácil y funciona bien
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"
Pero una vez que la inicialización debe ocurrir en__init__
se vuelve más complicado y no estoy seguro del curso de acción correcto.
class STransaction(object):
"""A statement transaction"""
def __init__(self, date):
self._date = None
Extrañamente para mí, lo siguiente parece funcionar pero huele muy mal.
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
¿Cuál es la forma correcta de configurar propiedades en__init__
?
Gracias Aaron.