je l'habitude d'utiliser les fonctions reduce and getattr pour appeler les attributs d'une manière de la chaîne comme « thisattr.thatattr.blaattar » IE:solution Pythonic à mon problème de réduire getattr
reduce(getattr, 'xattr.yattr.zattr'.split('.'), myobject)
fonctionne parfaitement bien, mais maintenant j'ai nouvelle exigence, mes chaînes peuvent faire appel à un nombre spécifique d'un attribut en tant que tel: « thisattr.thatattr [2] .blaattar »
reduce(getattr, 'xattr.yattr[2].zattr'.split('.'), myobject)
maintenant, il ne fonctionne pas, j'obtiens l'erreur xattr object has no attribute 'yattr[2]'
.
Quelle serait une solution élégante à cela, qui fonctionne dans les deux cas?
Cordialement
ne semble pas fonctionner. – kennytm
Que diriez-vous d'un peu plus d'informations? – delnan
Lorsque j'essaie d'obtenir 'extended_chain_getattr ('foo', Foo_obj)', il est dit 'AttributeError:' L'objet 'Foo' n'a pas d'attribut 'fo'. – kennytm