use*_*618 33 python namedtuple
我有一个带集合的模块:
import collections
named_tuple_sex = collections.namedtuple(
'FlightsResultsSorter',
['TotalPriceASC',
'TransfersASC',
'FlightTimeASC',
'DepartureTimeASC',
'DepartureTimeDESC',
'ArrivalTimeASC',
'ArrivalTimeDESC',
'Airlines']
)
FlightsResultsSorter = named_tuple_sex(
FlightsResultsSorter('TotalPrice', SortOrder.ASC),
FlightsResultsSorter('Transfers', SortOrder.ASC),
FlightsResultsSorter('FlightTime', SortOrder.ASC),
FlightsResultsSorter('DepartureTime', SortOrder.ASC),
FlightsResultsSorter('DepartureTime', SortOrder.DESC),
FlightsResultsSorter('ArrivalTime', SortOrder.ASC),
FlightsResultsSorter('ArrivalTime', SortOrder.DESC),
FlightsResultsSorter('Airlines', SortOrder.ASC)
)
Run Code Online (Sandbox Code Playgroud)
在另一个模块中,我按此集合进行迭代,我想得到项目的名称:
for x in FlightsResultsSorter:
self.sort(x)
Run Code Online (Sandbox Code Playgroud)
所以在代码中我想要代替x(对象)传递例如"DepartureTimeASC"或"ArrivalTimeASC".
我怎么能得到这个名字?
最好的祝福
ars*_*ars 66
如果您要获取实际名称,请使用以下_fields属性:
In [50]: point = collections.namedtuple('point', 'x, y')
In [51]: p = point(x=1, y=2)
In [52]: for name in p._fields:
....: print name, getattr(p, name)
....:
x 1
y 2
Run Code Online (Sandbox Code Playgroud)
jd.*_*jd. 30
from itertools import izip
for x, field in izip(FlightsResultsSorter, named_tuple_sex._fields):
print x, field
Run Code Online (Sandbox Code Playgroud)
你也可以FlightsResultsSorter._asdict()用来获得一个字典.
| 归档时间: |
|
| 查看次数: |
33631 次 |
| 最近记录: |