La mejor y más rápida forma de usar constantes -- python campo con optimization campo con constants camp Relacionados El problema

Best and fastest way to use constants


0
vote

problema

Español

Aquí están los archivos que tengo por el momento:

  main.py functions.py constants.py   

Estoy trabajando en un proyecto en Python, que requiere algunas constantes y decidí exaltarlas en un archivo de Python llamado constants.py que parece:

  A = 5 B = 6 C = 7 # etc.   

Este archivo se importan como un módulo en functions.py y main.py Sin embargo, me gustaría agregar algunos scripts y cambiar estas constantes en main.py con los parámetros para ejemplos, pero si cambio estas constantes en main.py6 no cambian de todos modos en functions.py lo que lo usa mucho Y no encontré ninguna solución a ese problema, así que estoy usando un diccionario, pero el diccionario toma 3 veces más para acceder a una variable I.E:

  timeit.timeit(stmt='b = a[5]; b = 0', setup="a = {5:5}", number=5000) # 0.000302988540795468 timeit.timeit(stmt='b = a; b = 0', setup="a = 5", number=5000) # 0.00013507954133143288   
Original en ingles

Here are the files I have for the moment:

main.py functions.py constants.py 

I am working on a project in python which requires some constants and I decided to stock them in a python file called constants.py which looks like:

A = 5 B = 6 C = 7 # etc. 

This file is both imported as a module in functions.py and main.py However I would like to add some scripting and change these constants in main.py with parameters for examples, but if I change these constant in main.py they don't change anyway in functions.py which uses it a lot And I didn't find any solution to that problem yet, so I am using a dictionary but dictionary takes 3 times longer to access a variable i.e:

timeit.timeit(stmt='b = a[5]; b = 0', setup="a = {5:5}", number=5000) # 0.000302988540795468 timeit.timeit(stmt='b = a; b = 0', setup="a = 5", number=5000) # 0.00013507954133143288 
        
         
         

Lista de respuestas

1
 
vote
vote
La mejor respuesta
 

Poner a un lado el hecho de que estas no son constantes, probablemente está cambiando lo incorrecto cuando intenta cambiar los valores de los archivos ACROSS. Utilice import constants y siempre se refiere a constants.A y los cambios en constants.A6 se reflejarán en todas partes. NO HAGA from constants import A y NO HAGA A = constants.A; A = 10 y espera que cambie A a 10 en todas partes. Más bien hacer child0 .

 

Putting aside the fact that these are not constants, you are probably changing the wrong thing when you're trying to change the values accross files. Use import constants and always refer to constants.A and changes to constants.A will be reflected everywhere. Do not do from constants import A and do not do A = constants.A; A = 10 and expect that to change A to 10 everywhere. Rather do constants.A = 10.

 
 
 
 

Relacionados problema

2  Adjuntos de punteros a clase a un Qlist Qlist <Class *>  ( Appending pointers to class to a qlist qlistclass ) 
En mi MainWindow.H Tengo un Qlist M_QLServolist que debe almacenar punteros a los objetos servo: QList<Servo* > m_qlServoList; Cuando intento agregar u...

2  Cómo pasar un vector de STL a una función que toma un Const [] (C ++)  ( How to pass a stl vector to a function which takes a const c ) 
Tengo un vector 3D STL, vector<vector<vector<double> > > mdata; También tengo una función myfun(const double ya[]); Para ser más precisos, es un...

0  Cadena constante de Android como llave de paquete no funciona  ( Android constant string as bundle key not working ) 
He asumido un código fuente de aplicaciones para continuar desarrollándose. En muchos casos, los recursos de cadena se utilizan como llave en los paquetes: b...

4  Optimización de GCC, Objeto estático Const, y restringir  ( Gcc optimization const static object and restrict ) 
Estoy trabajando en un proyecto incorporado y estoy intentando agregar más estructura a parte del Código, que usan macros para optimizar el acceso a los regis...

7  Plantilla descuida const (¿por qué?)  ( Template neglects const why ) 
¿Alguien sabe, por qué esto compila ?? template< typename TBufferTypeFront, typename TBufferTypeBack = TBufferTypeFront> class FrontBackBuffer{ public: ...

15  Usando constantes en perl  ( Using constants in perl ) 
Estoy tratando de definir constantes en Perl usando el constant Pragma: use constant { FOO => "bar", BAR => "foo" }; Estoy corriendo en un po...

5  Java - ¿Es esta buena práctica de programación?  ( Java is this good programming practice ) 
¡Sólo se pregunta si se considera que lo siguiente es una buena práctica de programación o no? Me gusta mantener a mis archivos de origen individuales como lo...

1  C ++ Objeto Constructor Pasado por Const Referencia Copia  ( C object constructor pass by const reference copying ) 
Cuando paso un objeto a otro objeto como una referencia const, ¿hay una copia realizada? Siempre asumí desde que pasé el objeto por referencia, el objeto miem...

0  ¿Requiere archivos de definición constante a la vez o por utilización en PHP?  ( Require constant defining files at once or by utilisation in php ) 
Tengo unos 20 archivos que contienen 10-15 veces esto: define('someConstantName','stringBetween10and200Chars'); Todos son críticos para la aplicación, ...

254  ¿Cómo elimino la duplicación de código entre las funciones similares de Miembros Const y No Const?  ( How do i remove code duplication between similar const and non const member func ) 
Digamos que tengo el siguiente class X donde quiero devolver el acceso a un miembro interno: class Z { // details }; class X { std::vector<Z> ve...




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