Domanda

Supponiamo che io sono una classe Python che voglio aggiungere una proprietà in più per.

C'è qualche differenza tra

import path.MyClass
MyClass.foo = bar

e usando qualcosa come:

import path.MyClass
setattr(MyClass, 'foo', bar)

In caso contrario, perché la gente sembrano fare il secondo piuttosto che il primo? (Ad esempio qui http:. //Concisionandconcinnity.blogspot. com / 2008/10 / concatenamento-monkey-patch-in-python.html )

È stato utile?

Soluzione

Le dichiarazioni sono equivalenti, ma setattr potrebbero essere utilizzati perché è la scelta più dinamica dei due (con setattr è possibile utilizzare una variabile per il nome dell'attributo.)

See: http://docs.python.org/library/functions.html# setattr

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top