J'ai une classe qui a peu de champs statiques et qui est initialisée à partir de itérable (comme la sortie de csvreader
).Conversion de types pour les champs namedtuple lors de l'initialisation
class PerformanceTestResult(object):
def __init__(self, csv_row):
# csv_row[0] is just an ordinal number of the test - skip that
self.name = csv_row[1] # Name of the performance test
self.samples = int(csv_row[2]) # Number of measurement samples taken
self.min = int(csv_row[3]) # Minimum runtime (ms)
self.max = int(csv_row[4]) # Maximum runtime (ms)
self.mean = int(csv_row[5]) # Mean (average) runtime (ms)
self.sd = float(csv_row[6]) # Standard deviation (ms)
Je pense à la conversion à être juste un namedtuple
, car il n'y a pas grand-chose d'autre à: le pour certains d'entre eux __init__
effectue la conversion du type de chaînes en nombres. Mais je voudrais maintenir la conversion de type lors de l'initialisation. Y at-il un moyen de le faire avec namedtuple
? (Je ne l'ai pas remarqué méthode __init__
dans la sortie verbeuse de namedtuple
méthode d'usine, ce qui me fait réfléchir sur le fonctionnement de l'initialiseur par défaut.)
Avez-vous un exemple de la façon dont vous voulez que votre namedtuple ressemble? – user1767754