有没有办法获取单个NamedTuple
(或者其他类型的)属性的字符串表示形式
下面的代码段实例化了一个pandas.Series
索引,该索引使用了与值来源匹配的str
键
如果以后要将attr_1
的名称更改为some_useful_attribute_name
,并希望在熊猫系列索引中反映这一点,则下面的代码需要进行两项更改
import pandas as pd
from typing import NamedTuple
class MyTuple(NamedTuple):
attr_1: int
attr_2: float
mt = MyTuple(1, 1)
ser = pd.Series(data=[mt.attr_1], index=['attr_1'])
当序列实例化远离类定义时,人们通常会错过第二个更改
Pycharm之类的重构工具有些帮助,因为它们可以识别所有的attr_1
字符串。但是,如果字符串不是attr_1
,而是更常见的字符串,例如level
或其他任何字符串,那么识别要更改的正确字符串就变得相当繁琐
因此,与上面的最后一行代码不同,我希望
ser = pd.Series(data=[mt.attr_1], index=[repr(mt.attr_1)])
当然,除了repr()
没有给我属性的名称,而是它的内容的字符串表示
我也知道NamedTuple._asdict()
方法。然而,这里的用例是一个只有选定属性进入系列而不是整个字典的用例
编辑: 通过以一种巧妙的方式将Enum和NamedTuple结合起来,可以实现一些功能吗
谢谢你的帮助
目前没有回答
相关问题 更多 >
编程相关推荐