繁体   English   中英

从Python中的函数返回左值?

[英]Return lvalue from function in Python?

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

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

但是,它将无法正常工作,因为口译员抱怨如下:

SyntaxError: can't assign to function call

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

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

row_a = ["rowname","items1","items2"]
def set_rowname(row, value):
    row[1] = value
set_rowname(row_a, "another_rowname")

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

刚刚发现了一个丑陋的方法.. Thougn setattr需要。

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM