如果函数返回的变量不需要,我如何满足PEP8的未使用变量规则?

12 投票
1 回答
4508 浏览
提问于 2025-04-18 01:24

在Python中,如果你有一个函数,它返回了几个变量,比如:

row, column = search_in_table(table_name, search_for)

有时候你只需要用到函数返回的其中一个变量。但是当这种情况发生时,代码行会被标记为PEP8的未使用变量警告。

那么我该怎么处理这种情况,才能遵循所有PEP8的规则呢?

1 个回答

21

根据你的喜好,你可以选择以下两种做法中的一种:

  1. 按照Python的惯例,对于那些不使用的变量,可以用下划线来替代它们:

    # We only need row
    row, _ = search_in_table(table_name, search_for)
    

    或者:

    # We only need column
    _, column = search_in_table(table_name, search_for)
    
  2. 直接获取函数返回值的某个部分:

    row = search_in_table(table_name, search_for)[0]
    

    或者:

    column = search_in_table(table_name, search_for)[1]
    

    最后一种方法之所以有效,是因为从技术上讲,Python函数实际上不能返回多个值。相反,它们可以返回一个包含多个值的元组

    >>> def func():
    ...     # This is equivalent to:  return (1, 2)
    ...     return 1, 2
    ...
    >>> func()
    (1, 2)
    >>> type(func())
    <class 'tuple'>
    >>> a,b = func()
    >>> a
    1
    >>> b
    2
    >>> a = func()[0]
    >>> a
    1
    >>> b = func()[1]
    >>> b
    2
    >>>
    

撰写回答