首页 > 解决方案 > 函数参数列表中的元组

问题描述

我有旧的 Python 2 代码,其中包含

def __init__(self, (gv_to_python, python_to_gv), values, bgl_type='object') :

在 Python 3 中使用它会产生语法错误(2to3 无法解决此问题)。

这个 Python 2 函数定义的 Python 3 等效项是什么?

标签: pythonpython-3.xlistargumentstuples

解决方案


PEP 3113表示正在删除元组参数。该页面底部的过渡计划建议

其次,2to3 重构工具 [1] 将获得一个修复器 [2],用于将元组参数转换为作为函数中的第一条语句解包的单个参数。新参数的名称将被更改。然后将新参数解压缩为元组参数中最初使用的名称。这意味着以下功能:

def fxn((a, (b, c))):
    pass

将被翻译成:

def fxn(a_b_c):
    (a, (b, c)) = a_b_c
    pass

基本上,将参数更改为单个值,然后将其解压缩到函数体中。


推荐阅读