Проверить, присутствует ли подстрока в имени переменной - Python - PullRequest
0 голосов
/ 03 августа 2020

У меня есть функция, которая принимает заданную переменную в качестве аргумента. Эта переменная представляет собой массив numpy. Пример в псевдокоде:

def foo(var):
   if 'test' in the name of var:
      do something

return

Я пробовал разные варианты, например

if 'test' in var: 

или

if var == 'test_complete_name_of_var'

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

if 'test' in var.name()

Есть идеи, как решить эту проблему?

Ответы [ 2 ]

1 голос
/ 03 августа 2020

Обычно, если вы хотите сделать что-то подобное, вы можете создать словарь и сохранить переменную под именем. Таким образом, вы также можете проверить это.

Пример:

dict_variables = {}
dict_variables["var_1"] = ["a", "b", "test"]

def foo(var_name):
    var_value = dict_variables.get(var_name)
    if 'var_' in var_name:
       print(var_value)
       
foo("var_1")
#out: ['a', 'b', 'test']

Полезно, например, для переменных пути и фрейма данных.

0 голосов
/ 03 августа 2020

Сначала установите библиотеку varname

pip install python-varname

, а затем используйте ее как следующий пример:

from varname import nameof

def foo(var):
    if 'test' in nameof(var):
      ###do something
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...