¿Cómo defino una variable para todos los métodos de clase? -- python-3.x camp Relacionados El problema

How do I define a variable for all class methods use?


0
vote

problema

Español

Necesito definir las variables que se utilizarán en todos los métodos de una clase.

  class A:     def method1(self):         for i in range(N):             *do something with M*     def method2(self):         for i in range(N):             *do other thing with M*   

y así sucesivamente. Todo lo que necesito hacer es definir variables n y m en algún lugar del comienzo de la clase que describe. Intenté definirlo en constructor como este:

  class A:     def __init__(N, M):         self.N=N         self.M=M     def method1(self):         ...   

en Tiende a llamar a A con estos parámetros solo una vez. Pero hubo otro error en caso de que realmente no ahora ahora, cómo usar el constructor por ahora. Luego agrego estas variables como parámetros de cada método:

  ... def method1(self, N, M):     ...   

y ese tiempo funcionó perfectamente. Pero no quiero ingresar valores cada vez que llame a A.Methodx () y estoy 100% seguro de que hay una o dos formas que concuerden mis solicitudes.

Original en ingles

I need to define a variables that is to be used in all the methods of one class.

class A:     def method1(self):         for i in range(N):             *do something with M*     def method2(self):         for i in range(N):             *do other thing with M* 

and so on. All I need to do is define N and M variables somewhere in the begining of class describing. I tried to define it in constructor like this:

class A:     def __init__(N, M):         self.N=N         self.M=M     def method1(self):         ... 

in tend to call A with this parameters just once. But there was another error in case I don't really now how to use constructor for now. Then I add this variables as parameters of each method:

... def method1(self, N, M):     ... 

And that time it worked perfectly. But I don't want to input values each time I call A.methodX() and I'm 100% sure there is one or two ways that accords my requests.

  
     
     

Lista de respuestas

0
 
vote
vote
La mejor respuesta
 

Estuvo en la pista correcta, así que escribí una versión corta de lo que sospecho que quería hacer con un pequeño código de 'depuración' incrustado. NOTA LA INSTANCIACIÓN DE LA CLASE aa = A(1,2)

  class A:     def __init__(self, N, M):         self.N = N         self.M = M     def method1(self):         print ("iterate N")         for i in range(self.N):             print (str(i) + " ")     def method2(self):         print ("iterate M")         for i in range(self.M):             print (str(i) + " ")   aa = A(1, 2) aa.method1() aa.method2()   

Tenga en cuenta que lo que he hecho aquí es crear variables de instancia: también puede crear variables de clase al instanciarlas fuera de los métodos. Así que IVAR se convierte en la variable de clase.

  -K0  
 

You were on the right track so I wrote a short version of what I suspect you wanted to do with a little 'debug' code embedded. Note the instantiation of the class aa = A(1,2)

class A:     def __init__(self, N, M):         self.N = N         self.M = M     def method1(self):         print ("iterate N")         for i in range(self.N):             print (str(i) + "\n")     def method2(self):         print ("iterate M")         for i in range(self.M):             print (str(i) + "\n")   aa = A(1, 2) aa.method1() aa.method2() 

Note that what I've done here is create instance variables - you can also create class variables by instantiating them outside of the methods. So iVar becomes the class variable.

class A:      iVar = 0      def __init__(self, N, M):             self.N = N             self.M = M      ...... 
 
 
 
 

Relacionados problema

1  Buscando verificar si parte de una entrada de usuario puede estar en un rango de enteros  ( Looking to check if part of a user input can be in a range of integers ) 
Soy bastante nuevo en Python, Estoy tratando de verificar si la entrada del usuario se puede verificar en un rango de enteros El siguiente es el código que ya...

0  ¿Hay algo que puede unirse solo los elementos de la lista? - Python 3.6  ( Are there something that can join only list items python 3 6 ) 
Ahora sé que esta es una pregunta muy estúpida ... Estoy tratando de hacer algo así como un lenguaje de programación en un lenguaje de programación (Python)...

3  Cambiando gui directamente desde qthread pyqt 5  ( Changing gui directly from qthread pyqt 5 ) 
Hola, he enviado a mi enlace de trabajador de hilo a la GUI y actualizar la información de la GUI directamente desde QThread. Como aquí: class Worker(QThre...

10  ¿Error de subproceso inactivo de Python?  ( Python idle subprocess error ) 
El subproceso de inactividad no hizo conexión. O bien imposible no puede iniciar un Subproceso o firewall personal El software está bloqueando la conex...

0  Redirigiendo cada url a 500 Error del servidor Django  ( Redirecting every url to 500 server error django ) 
Mi aplicación Django funciona en el servidor de desarrollo local. Para desplegar en Heroku tuve que usar Whitenoise para servir archivos estáticos. La aplicac...

5  Cálculo de la notación de Big O con la recursión  ( Calculating big o notation with recursion ) 
He intentado entender el tiempo de ejecución de Big O Notación. Pero todavía no lo entiendo. Este es un código que escribí recientemente: def g(n): i...

7  ¿Cómo encontrar la clase de método unido durante la construcción de clase en Python 3.1?  ( How to find class of bound method during class construction in python 3 1 ) 
Quiero escribir un decorador que permita que los métodos de clases sean visibles para otras partes; Sin embargo, el problema que estoy describiendo es indepen...

373  ¿Qué es una alternativa a la fila en Python 3?  ( What is an alternative to execfile in python 3 ) 
Parece que se cancelan en Python 3, toda la forma fácil de cargar rápidamente un script al eliminar execfile() ¿Hay una alternativa obvia que me estoy per...

1  ¿Cómo bloquear la ejecución de tareas hasta que todas las tareas hayan sido presentadas?  ( How to block execution of tasks till all tasks have been submitted ) 
Estoy construyendo un marco donde se envíe cada tarea a un cliente de Dask proporcionado por el usuario usando Enviar, como SO: $("select").change(function...

9  ¿Cómo descargar un archivo a través de HTTP con autorización en Python 3.0, trabajando alrededor de Bugs?  ( How to download a file over http with authorization in python 3 0 working aroun ) 
Tengo un script que me gustaría continuar usando, pero parece que tengo que encontrar algo de solución para un error en Python 3, o degradarse de regreso a 2....




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos