From b5b500c8691a802a3e8a70796ffd77a1b4ed50c6 Mon Sep 17 00:00:00 2001 From: Clarence Castillo Date: Wed, 9 Oct 2013 12:29:20 +0800 Subject: [PATCH] Status dictionary of Organism is now implemented inside the initialization of Organism to prevent referencing to the same dictionary --- dose/genetic.py | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/dose/genetic.py b/dose/genetic.py index 5a6f0b3..fd6eae6 100644 --- a/dose/genetic.py +++ b/dose/genetic.py @@ -202,13 +202,7 @@ class as some functions need to be over-ridden in the inherited class for @since: version 0.4 """ - status = {'alive': True, # is the organism alive? - 'vitality': 100.0, # % of vitality - 'age': 0.0, # age of the organism - 'lifespan': 100.0, # maximum lifespan - 'fitness': 100.0, # % of fitness - 'death': None} - + genome = [] def __init__(self, genome='default', @@ -236,6 +230,12 @@ def __init__(self, genome='default', @since: version 0.4 """ + self.status = {'alive': True, # is the organism alive? + 'vitality': 100.0, # % of vitality + 'age': 0.0, # age of the organism + 'lifespan': 100.0, # maximum lifespan + 'fitness': 100.0, # % of fitness + 'death': None} if genome == 'default': self.genome = [Chromosome()] elif genome == 'dummy': @@ -245,7 +245,7 @@ def __init__(self, genome='default', self.mutation_type = mutation_type self.additional_mutation_rate = additional_mutation_rate self.gender = gender - + def generate_name(self): name = ''.join([random.choice(('1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', @@ -372,10 +372,6 @@ def clone(self): @since: version 0.4 """ org = deepcopy(self) - temp_status = {} - for key in self.status.keys(): - temp_status[key] = self.status[key] - org.status = temp_status return org class Population(object):