Перейти к содержимому

Как получить имя переменной python

  • автор:

python Как получить имени переменной в виде строки?

Избитый вопрос, мне нужно получить имя переменной в виде строки. Понимаю, что у переменных нет функции name — она в коде только для того, чтобы было понятней, что я хочу получить. Суть в том, что мне нужно только ИМЯ переменной чтобы получить доступ к базе данных по словарю. Мне глубоко фиолетово на что эта переменная ссылается, это совершенно не важно, только имя и всё. Нужно получить аналог W = F[‘spisok’] используя «x».

import shelve spisok = 12345 def ABC(x): F = shelve.open('База данных') W = F[x.__name__] Q = ABC(spisok) 

Отслеживать

задан 21 дек 2020 в 15:49

103 1 1 серебряный знак 8 8 бронзовых знаков

Это совершенно бессмысленно, потому что вы сами пишите что получит функция, поэтому надо просто добавить кавачки

Как получить строковые имена переменных в python и несколько трюков с matplotlibe

Вернуть строкове имя конкретной переменной не получится. так как на один и тот же объект может ссылаться несколько переменных. Но можно вернуть все переменные для конкретного объета. В данном примере две разные переменные ссылаются на два разных объекта (которые под капотом python на самом деле один объект):

import inspect x = 1 y = 1 def retrieve_name(var): callers_local_vars = inspect.currentframe().f_back.f_locals.items() return [var_name for var_name, var_val in callers_local_vars if var_val is var] print(retrieve_name(y)) ['x', 'y'] 

Как получить строкове значение имени функции в python

__name__ работает с build in функциями. func_name нет

>>> import time >>> time.time.func_name Traceback (most recent call last): File "", line 1, in ? AttributeError: 'builtin_function_or_method' object has no attribute 'func_name' >>> time.time.__name__ 'time' 

Как удалить линии сетки в [matplotlibe]

plt.grid(None) 

в ряде случаев, если создана сетка, может потребоваться проитерирвоать

for i in range(4): for j in range(3): axs[i, j].grid(None) 
%matplotlib inline from matplotlib import pyplot as plt plt.rcParams["axes.grid"] = False 

Как задать размеры изображения для subplots в matplotlib

вот так, например:

fig, axs = plt.subplots(nrows=3, ncols=3) fig.set_figheight(25) fig.set_figwidth(25) 

Как создать анотированную матрицу в matplotlib

Вот подробный гайд на эту тему. Если совсем лень, можно использовать seaborn.heatmap

Создание переменных с переменными именами в Python

Существуют ситуации, когда может возникнуть необходимость создания переменных с динамическими именами, то есть именами, которые определяются в процессе выполнения программы. Например, при обработке больших данных, когда количество и имена переменных заранее неизвестны.

Однако, стоит учесть, что использование такого подхода может привести к ряду проблем. Во-первых, это может затруднить отладку и чтение кода, так как не всегда очевидно, какие переменные были созданы и что они содержат. Во-вторых, это может привести к неожиданным ошибкам, если имя переменной совпадет с именем уже существующей переменной или зарезервированным словом в Python.

Однако, если все же возникла необходимость использования такого подхода, в Python есть несколько способов реализации этой идеи.

Способ 1. Использование словарей

В Python словарь — это структура данных, которая позволяет хранить пары «ключ-значение». Использование словаря позволяет создавать и обращаться к переменным по их «ключам», которые могут быть динамическими.

variables = <> variables["var1"] = 1 variables["var2"] = 2

Способ 2. Использование функции globals()

Функция globals() возвращает словарь, который содержит все глобальные переменные. Таким образом, можно добавить в этот словарь новую переменную с динамическим именем.

globals()["var1"] = 1

Однако, следует быть осторожным с этим методом, так как он может привести к неожиданным последствиям, если имя новой переменной совпадет с именем уже существующей глобальной переменной или зарезервированным словом.

Вывод

Создание переменных с переменными именами в Python возможно, но следует использовать этот подход с осторожностью. Чаще всего, решение, которое не требует создания таких переменных, будет более безопасным и понятным.

Как определить имя переменной передаваeмой в min(), max() в python?

Как мне теперь понять, что 0 это переменная с именем a?

  • Вопрос задан более трёх лет назад
  • 958 просмотров

2 комментария

Средний 2 комментария

sanya84

Как мне теперь понять, что 0 это переменная с именем a?

Вы в своём уме?

Makaroshka007

Тимур Покровский @Makaroshka007
мне кажется, что лучше использовать списки
Решения вопроса 0
Ответы на вопрос 5

Вам это не надо. Вы работаете с данными, а не с именами переменных.

Дичь, но это «то, что надо»:

a = 0 b = 1 c = 2 d = 3 alls = min(a, b, c, d) globs = globals().copy() for i in globs: if id(globs[i]) == id(alls): print("имя переменной, у которой самый маленький int:", i) break

all — зарезервированное имя, не используйте его.
Ответ написан более трёх лет назад
Комментировать
Нравится 2 Комментировать

d= print(min(d, key=d.get))

Ответ написан более трёх лет назад
Комментировать
Нравится 1 Комментировать

SoreMix

soremix @SoreMix Куратор тега Python

min, max и другие возвращают только минимальное значение, никак не название переменной с минимумом.
Можете просто определить свою переменную, обозначающую минимальное число
min_num = min(a,b,c,d)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *