1

我尝试编写一个函数,该函数可以返回一个元素的引用以供分配,示例代码如下所示(Python3):

row_a = ["rowname","items1","items2"]
def rowname(row):
    return row[0]
rowname(row_a) = "another_rowname"

但是,它不起作用,因为解释器抱怨如下:

SyntaxError: can't assign to function call

有谁知道如何实现这样的功能?

4

3 回答 3

1

没有 Pythonic 的方式来做到这一点。你不能在 Python 中返回左值——Python 不是 C++!如果您只想使用函数来设置列表的第一个元素的值,只需执行以下操作:

row_a = ["rowname","items1","items2"]
def set_rowname(row, value):
    row[1] = value
set_rowname(row_a, "another_rowname")
于 2013-02-19T05:02:01.243 回答
0

函数的返回值不能用作变量。您可以将返回值分配给变量。您的列表定义看起来像您想要创建字典。为什么不完全按照您的预期坐下呢?

于 2013-02-19T05:09:41.210 回答
0

刚刚找到了一个丑陋的方式.. Thougnsetattr需要..

row_a = ["rowname","items"]
def rowname(row):
    class inner:
        def __init__(self):
            self.__dict__["to_l"] = None
        def __setattr__(self,name,value):
            row[0] = value
    return inner()
rowname(row_a).to_l = 20
print(row_a)
于 2013-02-19T05:21:34.880 回答