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 に答える