En python, sé que buscar una variable de ámbito local es mucho más rápido que buscar una variable de ámbito global. Por lo tanto:Python: ¿los atributos de clase son equivalentes a las variables locales cuando están dentro de un método?
a = 4
def function()
for x in range(10000):
<do something with 'a'>
es más lento que
def function()
a = 4
for x in range(10000):
<do something with 'a'>
Así, cuando miro a una definición de clase, con un atributo y un método:
class Classy(object):
def __init__(self, attribute1):
self.attribute1 = attribute1
self.attribute2 = 4
def method(self):
for x in range(10000):
<do something with self.attribute1 and self.attribute2>
¿Es mi uso de self.atributo más como mi primera o segunda función? ¿Qué pasa si clasifico Classy e intento acceder al atributo 2 desde un método en mi subclase?
Si bien tenía curiosidad acerca de la respuesta a esta pregunta en general, la verdadera razón por la que la preguntaba era porque tenía una serie de constantes que casi con certeza usaría solo un método, y no estaba seguro de si debería hacerlo. defínalos dentro de ese método, o dentro de init (en caso de que luego me dé cuenta de que necesitan ser accedidos a otra parte). Como esa posibilidad es remota, creo que los definiré en el método. Gracias. – Wilduck