Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 识别匹配的类变量并返回变量名_Python_String_Python 3.x_List_Class - Fatal编程技术网

Python 识别匹配的类变量并返回变量名

Python 识别匹配的类变量并返回变量名,python,string,python-3.x,list,class,Python,String,Python 3.x,List,Class,如果我想使用一个函数来确定类变量列表是否包含在字符串或变量中,我将如何识别文本匹配的特定变量 class numbersChecks: number1 = "123" number2 = "456" number3 = "789" numberCheck = [number1, number2, number3] sample = "63D456DF1" def main(): for i in numbersChecks.numberCheck:

如果我想使用一个函数来确定类变量列表是否包含在字符串或变量中,我将如何识别文本匹配的特定变量

class numbersChecks:
    number1 = "123"
    number2 = "456"
    number3 = "789"
    numberCheck = [number1, number2, number3]

sample = "63D456DF1"

def main():
    for i in numbersChecks.numberCheck:
        if i in sample:
            print(i)


if __name__ == '__main__':
    main()
在这个例子中,我可以取回456,但是如何取回实际的变量名,比如“number2”


我实际处理的数据是非常非常长的十六进制字符串,因此我试图避免将长字符串复制到单独的字典中,例如
{number1:123,number2:456}

您可以通过索引或字典:

numbers_to_check = ['123', '456', '789']
for index, number in enumerate(numbers_to_check):
    if number in sample:
        print(index)

第三种方法是使用枚举:

from enum import Enum

class Numbers(Enum):
    number1 = "123"
    number2 = "456"
    number3 = "789"

for number in Numbers:
    if number.value in sample:
        print(number.name)

首先,你为什么需要上课?为什么不直接使用字典呢?我正在将类导入main,它们相当长。因此,我试图访问类名,并查看类变量是否与函数的返回变量匹配,因此您应该考虑更改该函数的返回值。在你的问题中要更加详细。字典似乎是列表中迭代速度最快的,我想我只需要将类变量移动到单个字典中,就可以让一切顺利进行。希望避免冗长的复制/粘贴过程。
from enum import Enum

class Numbers(Enum):
    number1 = "123"
    number2 = "456"
    number3 = "789"

for number in Numbers:
    if number.value in sample:
        print(number.name)