Lors de la définition correcte des accesseurs de propriété en Python, il est courant d'écrire comme suit en utilisant la fonction property
. Par exemple, si vous voulez attacher la propriété bar
à la classe Foo
.
class Foo(object):
def __get_bar(self):
return self.__bar
def __set_bar(self, value):
self.__bar = value
def __del_bar(self):
del self.__bar
bar = property(__get_bar, __set_bar, __del_bar,
doc="short explanation for bar property")
Cependant, avec cette méthode d'écriture, il est nécessaire de créer jusqu'à trois méthodes pour une propriété, ce qui est déroutant.
Dans un tel cas, il est également possible de l'écrire collectivement comme suit. Le haut et le bas ont la même signification.
class Foo(object):
def bar():
doc = "short explanation for bar property"
def fget(self):
return self.__bar
def fset(self, value):
self.__bar = value
def fdel(self):
del self.__bar
return locals()
bar = property(**bar())
Peut être omis si vous n'avez pas besoin de fdel ()
ou doc
.
C'est un peu plus facile à voir car une méthode avec le même nom est regroupée pour une propriété ... Je pense.
Recommended Posts