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 комментария

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

Тимур Покровский @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 Куратор тега Python
min, max и другие возвращают только минимальное значение, никак не название переменной с минимумом.
Можете просто определить свою переменную, обозначающую минимальное число
min_num = min(a,b,c,d)