检查变量名-Python中是否存在子字符串

检查变量名-Python中是否存在子字符串,python,numpy,Python,Numpy,我有一个函数,它以给定的变量作为参数。 此变量是一个numpy数组。伪代码中的示例: def foo(var): if 'test' in the name of var: do something return 我尝试过不同的选择,比如 if 'test' in var: 或 但是这些只是检查数组的值,而不是变量名。 我希望能有一些技巧,比如: if 'test' in var.name() 关于如何解决这个问题有什么想法吗?首先,安装varname库 pip in

我有一个函数,它以给定的变量作为参数。 此变量是一个numpy数组。伪代码中的示例:

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

return
我尝试过不同的选择,比如

if 'test' in var: 

但是这些只是检查数组的值,而不是变量名。 我希望能有一些技巧,比如:

if 'test' in var.name()

关于如何解决这个问题有什么想法吗?

首先,安装varname库

pip install python-varname
然后将其用作以下示例:

from varname import nameof

def foo(var):
    if 'test' in nameof(var):
      ###do something

通常,如果您想这样做,您可以创建一个字典并将变量存储在一个名称下。这样你也可以检查它

例如:

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']

例如,对路径和数据帧变量有用。

您认为为什么需要这样做?您不容易做到这一点。为什么不将函数签名更改为
def foo(var,test=False):
?通常,如果您想这样做,您可以创建一个字典并将变量存储在一个名称下。这样你也可以检查它。相关:可能也有帮助:听起来像是大规模的过度杀戮。该名称按字面意思硬编码为
var
。这就是语言的工作方式,您将如何检查名称是否包含某个字符串?
如果“var”中的“test”:
虽然我认为这个库很整洁,但我不知道为什么它甚至有点用处。我想不出任何一个用例,在这种用例中,知道某个东西被分配到的名称会导致健壮的代码。
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']