Je suis nouveau à Python, et je veux savoir s'il y a un moyen de rendre la valeur de l'âge calculée à l'aide de l'année de naissance qui est un article avec l'âge du même dictionnaire.
C'est ce qu'il est venu Mon esprit, et je pense qu'il y a un moyen simple, comme celui-ci sans utiliser de variables supplémentaires de fonctions. p> toute aide serait appréciée. Merci! P> p>
3 Réponses :
Vous pouvez avoir un dictionnaire auto-référentiel en utilisant une classe dérivée de dict code> mais dict code> ne dispose pas de cette capacité. Le code suivant est pris à partir de cette réponse . class MyDict(dict):
def __getitem__(self, item):
return dict.__getitem__(self, item) % self
dictionary = MyDict({
'user' : 'gnucom',
'home' : '/home/%(user)s',
'bin' : '%(home)s/bin'
})
print dictionary["home"]
print dictionary["bin"]
La sous-classement des dicts (ou de tout type intégré OBJ) est une mauvaise idée, un dict vide est une fausseté, un dict vide dérivé est de la vérité, vous devrez réimplanter beaucoup, ils ne sont pas censés être sous-classées.
@Adityashankar Je suis complètement d'accord avec vous, tandis que ma seule intention était de répondre à la question sans toucher son utilité. Mais votre précieux commentaire devrait également être noté.
@Adityashankar Pas toujours une mauvaise idée ... Pas nécessairement le bon choix ... Sous-classement à partir de Collections.userdict code> est probablement là où vous voulez aller la plupart du temps, mais parfois sous-classement directement à partir de dict code> est ce qui est nécessaire (dépend de combien vous pourriez avoir besoin de remplacer ... - si ce n'est que 1/2 fonction et que le reste va bien, puis la sous-classe directement, si c'est beaucoup, puis utilisez les mélanges )
Oui, vous pouvez
Juste pas décaltrez l'ensemble de la dicte dans un acte mais dans votre exemple, vous ne devriez pas changer quoi que ce soit, car il n'y a aucun moyen de le simplifier (facilement). Ma solution ne doit être utilisée que dans des tâches compliquées. Je viens de vous le moyen de le simplifier en cas d'énorme quantité de valeurs en dict. P> p>
Merci beaucoup, cela m'a aidé beaucoup
Au lieu de la codage du captage de l'année en cours, vous pouvez obtenir Python de vous le donner
{'name': 'Jane', 'yearofbirth': 1991, 'age': 24}
Merci pour votre suggestion, c'est utile aussi
Comment addition (
+ code>) donne l'âge? Vous devez soustraire (- code>).Vous ne pouvez pas faire référence à quelque chose qui n'a pas encore devenu un objet pourtant de devenir un objet ... donc la personne
[«weeknow»] code> etc ... ne peut pas fonctionner .... Depuis que vous avez déjà 2019 et 1995 , probablement de quelque part, ne pouvez-vous pas simplement utiliser cela, ça ou ... la définir ensuite? Aussi ... qu'est-ce que vous vous attendiez à ce que quelqu'un ait soudainement personne ["année"] = 1994 code>?