Supongamos que tenemos el siguiente fragmento de código:
# Código Python para demostración
# intercambiar trabajo
Número de variables de datos
# Crear una clase
class
Geek_Class:
friki
=
Geek_Class()
y
=
Geek_Class()
# Antes de agregar valores ​​
x.geek.append (
1
)
y.geek.append (
2
)
# Imprimir valores ​​para x e y
(y.geek)
Salir:
[1, 2, 3, 4] [1, 2, 3, 4]
Imprime [1, 2, 3, 4] para x y [1, 2, 3, 4 ] para y. Supongamos que queremos obtener [1, 3] para x y [2, 4] para y. Podemos obtener el resultado deseado de las siguientes formas:
Método # 1 : declarándolos dentro __init__
Declarando variables dentro una declaración de clase hace miembros de su clase, no miembros de instancia. Declararlos dentro del método __init__
asegura que se crea una nueva instancia de miembro junto con cada nueva instancia de objeto, que es lo que queremos.
# código Python para demostración
# trabajo de intercambio
Número de variables de datos
# Crear una clase dentro de __init__
class
. geek
=
[]
x
=
Geek_Class()
y
=
Geek_Class()
# Agregar valores ​​
x.geek.append (
imprimir
Salir:
[1, 3] [2, 4 ]
En el código fuente, no se asigna ningún valor al atributo de lista después de la instanciación; por lo tanto, sigue siendo un atributo de la clase. Definir una lista dentro de __init__
funciona porque se llama a __init__
después de la creación de instancias.
Método n.° 2: mediante la creación de una nueva lista y almacene los valores ‚Äã‚Äãen él.
# Código Python para demostración
# intercambiar trabajo
Número de variables de datos
# Crear una clase
=
[]
x
=
Geek_Class()
# Crear nuevas listas
x.geek
=
[]
y.geek
=
[]
# Agregar valores ​​
x.geek.append (
1
)
# Imprimir valores ​​para x e y
(y.geek)
Salir:
[1, 3] [2, 4]