我們知道tuple可以表示不變集合,例如,一個點的二維坐標就可以表示成:
但是,看到(1, 2),很難看出這個tuple是用來表示一個坐標的。這時,namedtuple就派上了用場。
用法:
使用namedtuple表示一個坐標的例子如下:
from collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
p = Point(1, 2)
print(p.x,p.y)
輸出為:`1,2'
再舉一個Densenet的例子:
from collections import namedtuple
DensenetParams = namedtuple('DensenetParameters', ['num_classes',
'first_output_features',
'layers_per_block',
'growth_rate',
'bc_mode',
'is_training',
'dropout_keep_prob'
])
default_params = DensenetParams(
num_classes = 10,
first_output_features = 24,
layers_per_block = 12,
growth_rate = 12,
bc_mode = False,
is_training = True,
dropout_keep_prob = 0.8,
)
print(default_params.num_classes)
輸出為:10