编程语言
首页 > 编程语言> > python – 具有namedtuple()的内部类

python – 具有namedtuple()的内部类

作者:互联网

我试图使用collections.namedtuple将字典转换为python对象.

import Zabbix

class Foo:

  def bar(self):
    collections.namedtuple('Zabbix.Request',['b','c'])

这导致了

ValueError: Type names and field names must be valid identifiers: 'Zabbix.Request'

我的简单修复就是扩展Foo中的内部类

import Zabbix

class Foo:

  class Request(Zabbix.Request):
    pass

  def bar(self):
    collections.namedtuple('Request',['b','c'])

有没有更好的办法?目前正在使用python 3.4

解决方法:

你不能给类型命名Zabbix.Request,因为那是无效的语法(例如,类Zabbix.Request :).因此,您也无法创建具有该名称的namedtuple.

您修改的代码不等同于第一个代码示例:您现在正在使用Request as name创建一个namedtuple.这是允许的,因为Request将是类型的有效标识符.

标签:python,python-3-x,data-conversion
来源: https://codeday.me/bug/20190609/1205755.html