He estado sentado todo el día y estoy un poco cansado, así que discúlpeme por ser breve.Pasando variables, creando instancias, self, La mecánica y el uso de clases: necesita explicación
Im nuevo en python.
Acabo de volver a escribir un programa de trabajo, en un conjunto de funciones en una clase y todo en mal estado. No sé si soy yo, pero estoy muy sorprendido de que no haya podido encontrar un tutorial para principiantes sobre cómo manejar las clases en la web, así que tengo algunas preguntas.
Primera lugar, en la sección __init__
de la clase que han declarado un montón de variables con self.variable=something
.
¿Es correcto que pueda acceder/modificar estas variables en cada función de la clase usando self.variable
en esa función? En otras palabras, al declarar self.variable
, he hecho estas variables, variables globales en el alcance de la clase ¿verdad?
Si no, ¿cómo me las arreglo?
En segundo lugar, ¿cómo paso correctamente los argumentos a la clase? Algún código de ejemplo sería genial.
En tercer lugar, ¿cómo puedo llamar a una función de la clase fuera del alcance de la clase? Algún código de ejemplo sería genial.
Fouthly, ¿Cómo se crea una instancia de la class INITIALCLASS
en otro class OTHERCLASS
, pasar variables de OTHERCLASS
a INITIALCLASS
? Algún código de ejemplo sería genial.
Quiero llamar a una función desde OTHERCLASS
con argumentos desde INITIALCLASS
. Lo que he hecho hasta ahora es
class OTHERCLASS():
def __init__(self,variable1,variable2,variable3):
self.variable1=variable1
self.variable2=variable2
self.variable3=variable3
def someotherfunction(self):
something=somecode(using self.variable3)
self.variable2.append(something)
print self.variable2
def somemorefunctions(self):
self.variable2.append(variable1)
class INITIALCLASS():
def __init__(self):
self.variable1=value1
self.variable2=[]
self.variable3=''
self.DoIt=OTHERCLASS(variable1,variable2,variable3)
def somefunction(self):
variable3=Somecode
#tried this
self.DoIt.someotherfunctions()
#and this
DoIt.someotherfunctions()
que claramente no entendía cómo pasar variables a clases o cómo manejar self
, cuándo usarlo y cuándo no. Probablemente tampoco entendí cómo crear correctamente una instancia de una clase. En general, no entendí la mecánica de las clases, así que por favor ayúdenme y explíquenme como si no tuviera idea (lo que no creo). O apúntame a un video completo o un tutorial legible.
Todo lo que encuentro en la web son ejemplos super simples, eso no me ayudó mucho. O solo definiciones muy cortas de clases y ejemplos de métodos de clase, etc.
Puedo enviarte mi código original si quieres, pero es bastante largo.
Lea el tutorial de Python [sección de clases] (http://docs.python.org/tutorial/classes.html). – BrenBarn
Conozca las opciones de formato aquí, especialmente para el código. – Marcin
No me refiero a ser condescendiente, pero la meta-respuesta aquí es que necesita reducir la velocidad un poco y averiguar exactamente dónde su código se está desviando de sus expectativas. Intenta hacer pequeños cambios desde tu código de trabajo y prueba cada cambio hasta que se rompa algo. Refactorizando, lo llaman. Además, no te rindas, es solo código, nunca tiene sentido hasta que lo haga. – Ben