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

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

  • автор:

Re: python: название переменной в виде строки

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

Re: python: название переменной в виде строки

А нельзя ли как-нибудь "выдрать" название переменной, например, из locals(); там оно хранится в виде строки (и как-то в эту строку транслируется). Получается, что по названию переменной можно определить её значение, а наоборот — нет?

Re: python: название переменной в виде строки

Re: python: название переменной в виде строки

список переменных

> 1. Конкретная задача: есть список переменных, значения которых нужно отобразить в полях формы. Причём название поля = название переменной.

А зачем их делать отдельными переменными? Поместите их все в словарь.

Re: python: название переменной в виде строки

> 2. Интересно 🙂

Имя переменной ‘x’ _всегда_ ‘"x"’. Зачем его откуда-то выдирать, если оно известно заранее?

>1. Конкретная задача: есть список переменных, значения которых нужно отобразить в полях формы

Измени задачу. "Есть список имен переменных, . ". Тогда просто получишь что-то типа

for i in ‘a b c d’.split(): gui.get_widget(i).set_text(locals()[i])

Re: список переменных

>А зачем их делать отдельными переменными? Поместите их все в словарь.

имена "x", "y", "z" используются внутри функции; x, y, z — передаются в качестве параметров; можно, конечно, передавать готовый словарь в качестве параметра, но тогда имхо код не так хорошо читается; хотя надо будет попробовать. Спасибо 🙂

Как получить имя переменной в Python во время выполнения?

Есть ли способ узнать во время выполнения имя переменной (из кода)? Или имена переменных, забытые во время компиляции (байт-код или нет)?

Примечание: я говорю о простых переменных типа данных ( int , str , list и т.д.)

8 ответов

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

обратите внимание: получение нескольких строк из вызывающего кода помогает в том случае, если вызов был разделен, как в приведенном ниже примере:

но приведет к неожиданному результату:

Если у вас нет контроля над форматом вашего проекта, вы все равно можете улучшить код для обнаружения и управления различными ситуациями.

В целом я предполагаю, что статический анализ кода может дать более надежный результат, но я слишком ленив, чтобы проверить его сейчас

Переменные имена не забываются, вы можете получить доступ к переменным (и посмотреть, какие переменные у вас есть) путем интроспекции, например.

Однако, поскольку в Python нет указателей, нет способа ссылаться на переменную без фактического написания ее имени. Поэтому, если вы хотите напечатать имя переменной и ее значение, вы можете пройти через locals() или аналогичную функцию. ( [i] становится [1] , и нет способа получить информацию о том, что 1 действительно пришел из i .)

Переменные имена сохраняются в скомпилированном коде (что может работать, например, встроенный встроенный dir ), но отображение, которое идет от имени к значению, а не наоборот. Так что если есть несколько переменных, которые стоят, например, 23 , то нет возможности рассказать их друг от друга только по значению 23 .

How can you print a variable name in python? [duplicate]

for use in making a dictionary. There’s a good way to do this and I’m just missing it.

The reason to do this is thus. I am running some data analysis stuff where I call the program with multiple parameters that I would like to tweak, or not tweak, at runtime. I read in the parameters I used in the last run from a .config file formated as

When prompted for values, the previously used is displayed and an empty string input will use the previously used value.

My question comes about because when it comes to writing the dictionary that these values have been scanned into. If a parameter is needed I run get_param which accesses the file and finds the parameter.

I think I will avoid the problem all together by reading the . config file once and producing a dictionary from that. I avoided that originally for. reasons I no longer remember. Perfect situation to update my code!

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

Это не то, что вы делаете в Python, так как переменные на самом деле являются отображениями имен для объектов. Единственными объектами в Python, которые имеют канонические имена, являются модули, функции и классы, и, конечно, нет никакой гарантии, что это каноническое имя будет иметь какое-либо значение в любом пространстве имен после определения функции или класса или импорта модуля.

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

Есть еще способы получить имя переменной в виде строки. Вам нужно знать строку имени переменной, чтобы извлечь ее. Также это обратный поиск по имени переменной. Если у вас есть 2 переменные, имеющие одно и то же значение, он может вернуть любую из них. Объект iteritems возвращает список всех переменных в области видимости с их значениями. Например,

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

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