Ver todas las variables definidas en Python

En este artículo, vamos a discutir cómo ver todas las variables definidas en Python. La visualización de todas las variables definidas juega un papel importante al depurar el código.

Método 1: Usar la función dir()

dir() es una función integrada para almacenar todas las variables dentro de un programa junto con las funciones y métodos de variables integradas. Crea una lista de todas las variables declaradas e integradas. Hay dos formas diferentes de ver todas las variables definidas usando dir(). Se discuten a continuación.

Cuando ninguna variable definida por el usuario comienza con ‘__’:

  • Defina algunas variables de varios tipos que no comiencen con ‘__’
  • Llame a dir y guárdelo en una variable. Almacena todos los nombres de variables definidos antes en forma de lista y almacena los nombres de variables como una string.
  • Iterar sobre toda la lista donde se almacena dir().
  • Imprime el elemento si no comienza con ‘__’

Ejemplo:

Python3

# Define some variables of various types
# that are not starting with '__'
var2 = "Welcome to geeksforgeeks"
var3 = {"1": "a", "2": "b"}
var4 = 25
var5 = [1, 2, 3, 4, 5]
var6 = (58, 59)
  
# call dir and store it in a variable.
# It stores all the variable names defined
# before in the form of a list
# and stores the variable names as a string.
all_variables = dir()
  
# Iterate over the whole list where dir( )
# is stored.
for name in all_variables:
    
    # Print the item if it doesn't start with '__'
    if not name.startswith('__'):
        myvalue = eval(name)
        print(name, "is", type(myvalue), "and is equal to ", myvalue)

Producción:

var2 es <clase ‘str’> y es igual a Bienvenido a geeksforgeeks

var3 es <clase ‘dict’> y es igual a {‘1’: ‘a’, ‘2’: ‘b’}

var4 es <clase ‘int’> y es igual a 25

var5 es <clase ‘lista’> y es igual a [1, 2, 3, 4, 5]

var6 es <clase ‘tupla’> y es igual a (58, 59)

Almacenar las variables integradas e ignorarlas

  • Cree una nueva variable y almacene todas las funciones integradas dentro de ella usando dir().
  • Definir algunas variables de varios tipos.
  • Vuelva a llamar a dir y guárdelo en una lista restando las variables integradas almacenadas previamente.
  • Iterar sobre toda la lista.
  • Imprimir los elementos deseados

Ejemplo:

Python3

# Create a new variable and store all
# built-in functions within it using dir( ).
not_my_data = set(dir())
  
# Define some variables of various types.
var2 = "Welcome to geeksforgeeks"
var3 = {"1": "a", "2": "b"}
var4 = 25
var5 = [1, 2, 3, 4, 5]
var6 = (58, 59)
  
# Again call dir and store it in a list 
# subtracting the built-in variables stored
# previously.
my_data = set(dir()) - not_my_data
  
# Iterate over the whole list is stored.
for name in my_data:
    
    # Exclude the un-necessary variable named not_my_data
    if name != "not_my_data":
        val = eval(name)
        print(name, "is", type(val), "and is equal to ", val)

Producción:

var2 es <clase ‘str’> y es igual a Bienvenido a geeksforgeeks

var3 es <clase ‘dict’> y es igual a {‘1’: ‘a’, ‘2’: ‘b’}

var6 es <clase ‘tupla’> y es igual a (58, 59)

var4 es <clase ‘int’> y es igual a 25

var5 es <clase ‘lista’> y es igual a [1, 2, 3, 4, 5]

Método 2: para imprimir variables locales y globales 

Locals() es una función integrada que devuelve una lista de todas las variables locales en ese ámbito particular. Y globals() hace lo mismo con las variables globales.

Acercarse 

  • Cree una lista de todas las variables globales utilizando la función globals() para almacenar las variables globales integradas.
  • Declarar algunas variables globales
  • Declarar una función.
  • Declare algunas variables locales dentro de él.
  • Almacene todas las variables locales en una lista, usando la palabra clave locales.
  • Iterar sobre la lista e imprimir las variables locales.
  • Almacene las variables globales en una lista usando la palabra clave globals y reste la lista creada previamente de variables globales integradas.
  • Imprímelos.
  • Llame a la función.

Ejemplo:

Python3

# Create a list of all global variables using
# globals( ) function, To store the built-in
# global variables.
not_my_data = set(globals())
  
# Declare some global variables
foo5 = "hii"
foo6 = 7
  
# Declare a function.
def func():
    
    # Declare some local variables inside it.
    var2 = "Welcome to geeksforgeeks"
    var3 = {"1": "a", "2": "b"}
    var4 = 25
    var5 = [1, 2, 3, 4, 5]
    var6 = (58, 59)
  
    # Store all the local variables in a list,
    # using locals keyword.
    locals_stored = set(locals())
      
    # Iterate over the list and print the local
    # variables.
    print("Printing Local Variables")
    for name in locals_stored:
        val = eval(name)
        print(name, "is", type(val), "and is equal to ", val)
  
    # Store the global variables in a list using 
    # globals keyword and subtract the previously
    # created list of built-in global variables from it.
    globals_stored = set(globals())-not_my_data
      
    # Print the global variables
    print("\nPrinting Global Variables")
    for name in globals_stored:
        
        # Excluding func and not_my_data as they are 
        # also considered as a global variable
        if name != "not_my_data" and name != "func":
            val = eval(name)
            print(name, "is", type(val), "and is equal to ", val)
  
  
# Call the function.
func()

Producción:

Impresión de variables locales

var2 es <clase ‘str’> y es igual a Bienvenido a geeksforgeeks

var6 es <clase ‘tupla’> y es igual a (58, 59)

var4 es <clase ‘int’> y es igual a 25

var5 es <clase ‘lista’> y es igual a [1, 2, 3, 4, 5]

var3 es <clase ‘dict’> y es igual a {‘1’: ‘a’, ‘2’: ‘b’}

Impresión de variables globales

foo6 es <clase ‘int’> y es igual a 7

foo5 es <clase ‘str’> y es igual a hii

Publicación traducida automáticamente

Artículo escrito por akashkumarsen4 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *