PyCharm:namedtuple:意外参数,未填充参数

问题描述 投票:0回答:1

在 PyCharm 中,您可以声明一个命名元组。

from collections import namedtuple

InstTyp = namedtuple(
    typename='InstTyp',
    field_names='''
        instance_type
        memory
        num_cpus    
    '''
)

使用命名元组的代码运行没有错误。

it = InstTyp(
    instance_type='tx',
    memory=64,
    num_cpus=8
)

但是,PyCharm 会引发“意外参数”和“未填充参数”检查警告。

python collections pycharm namedtuple code-inspection
1个回答
0
投票

field_names 是一系列字符串,例如 ['x', 'y']。或者,field_names 可以是单个字符串,每个字段名用空格和/或逗号分隔,例如“x y”或“x, y”。

Python解释器处理所有空格,因此代码可以运行。 PyCharm 不处理空白中的换行符,因此 PyCharm 显示检查警告。

有两种解决方案。

  1. 将 field_names 拆分为数组:

     InstTyp = namedtuple(
         typename='InstTyp',
         field_names='''
             instance_type
             memory
             num_cpus    
         '''.split()
     )
    
  2. 将 field_names 放在一行上。

     InstTyp = namedtuple(
         typename='InstTyp',
         field_names='instance_type memory num_cpus'
     )
    

PyCharm 检查警告消失了。

© www.soinside.com 2019 - 2024. All rights reserved.