Une note sur propriété
Dans le 2ème système [^ 1].
[^ 1]: Dans la 3ème série, il est jugé inconditionnellement comme un nouveau style, donc aucun problème ne se produit même si vous écrivez l'ancien style.
J'écris quelque chose qui n'est pas une fonctionnalité à l'ancienne dans l'ancien, donc c'est 100% convivial.
foo.py
class New(object):
def __init__(self):
self._x = 10
@property
def x(self):
return self._x * 2
@x.setter
def x(self, v):
self._x = v
class Old():
def __init__(self):
self._x = 10
@property
def x(self):
return self._x * 2
@x.setter
def x(self, v):
self._x = v
if __name__ == '__main__':
n = New()
n.x = 10
print ( n.x )
o = Old()
o.x = 10
print ( o.x )
«New» et «Old» sont exactement les mêmes, sauf pour la ligne de la déclaration de «class».
python
$ python foo.py
20
10
J'ai recherché diverses choses [^ 2], mais ↓ est la plus intuitive
[^ 2]: Existe-t-il une version Python
de Data :: Dumper
ou y a-t-il un B :: Deparse
?
Changer après le principal
if __name__ == '__main__':
n = New()
print (vars(n))
n.x = 2
print (vars(n))
o = Old()
print (vars(o))
o.x = 2
print (vars(o))
python
$ python foo.py
{'_x': 10}
{'_x': 2}
{'_x': 10}
{'x': 2, '_x': 10}
En bref, vieux
class Old():
def __init__(self):
self._x = 10
if __name__ == '__main__':
o = Old()
print (vars(o))
o.x = 2
print (vars(o))
Même chose que courir.
Recommended Posts