Python 如何在元组中获取元组的名称

Python 如何在元组中获取元组的名称,python,Python,假设我有: a = (1,2,3,4,5) b = (2,4,5,6,7) c = (a,b) 其中a、b和c是元组。我怎样才能得到“a”和“b”的名字? 我试着: for x in c: print(type(x).__name__) 但是它给了我tuple这个pythonvarname包允许您检查变量名。也许这对你有帮助。您可以通过pip install varname获得它。它的GitHub是,其中的自述文件提供了使用示例 编辑:事实上,对于您的用例,@chepner给出的注释

假设我有:

a = (1,2,3,4,5)
b = (2,4,5,6,7)
c = (a,b)
其中a、b和c是元组。我怎样才能得到“a”和“b”的名字? 我试着:

for x in c:
    print(type(x).__name__)

但是它给了我tuple

这个
pythonvarname
包允许您检查变量名。也许这对你有帮助。您可以通过
pip install varname
获得它。它的GitHub是,其中的自述文件提供了使用示例


编辑:事实上,对于您的用例,@chepner给出的注释是正确的。我将保留这个答案,以防该包对试图为不同情况获取变量名的人有用,因为它可以处理例如
a
b
本身。但是@chepner准确地解释了为什么从“c”中提取“a”和“b”是不可能的。

强制性链接到这里有一个微妙的区别。元组没有名称;它可能有一个(或多个)引用它的名称,但对象不跟踪这些名称;c=(a,b)?您希望
c
中的名称是什么?
a
b
不是给元组的名称,相反,元组被分配给这些名称。元组本身与这些名称没有任何联系。你能改用
dict
吗?例如:
c={“a”:a,“b”:b}
如果您只需要值,只需使用
c.values()
。您的循环将是:
对于k,c中的v:print(k)
使用k键(名称)和v值(在本例中为元组)。除了这是一个糟糕的想法之外,
python varname
实际上并没有做您认为它做的事情。它基于AST检查,因此您不能对stuff:print(nameof(thing))中的东西执行类似于
的操作,并获取列表中东西的“原始”名称。每次你都会得到
“东西”