class TrialDetails:
trial_number: int
def __init__(self, trial_number=-1):
self.trial_number = trial_number
def set_trial_number(self, trial_number):
self.trial_number = trial_number
class HpoExperiment:
experiment_name: str
total_trials: int
trialDetails: object
def __init__(self, experiment_name, total_trials, trialDetails = TrialDetails()):
self.experiment_name = experiment_name
self.total_trials = total_trials
self.trialDetails = trialDetails
def set_trial(self, trial_number):
self.trialDetails.set_trial_number(trial_number)
def display(self):
print ("exp name = ", self.experiment_name)
print ("total trials = ", self.total_trials)
print ("trial number = ", self.trialDetails.trial_number)
def main():
exp1 = HpoExperiment("A", 5)
exp2 = HpoExperiment("B", 3)
print("Experiment Details")
exp1.display()
exp2.display()
print("Update Experiment 1")
exp1.set_trial(22)
print("Experiment Details")
exp1.display()
exp2.display()
if __name__ == '__main__':
main()
While running the above code, why does the value of exp2 object also gets modified? I want to keep it separate for each object. Unable to understand how to do that.