5. Consider the following python program 1: class Dog (object): def -init-(self,
ID: 3874566 • Letter: 5
Question
5. Consider the following python program 1: class Dog (object): def -init-(self, breed, owner "pound"): self.owner-owner self-breed breed 4: eproperty def owner (self) return self. owner @owner.setter def owner (self, value) self. owner = value eproperty def breed (self) 12: 13: 15: 16: return self. breed @breed.setter def breed (self, value) self. breed value def str (self): return "Breed 17: { } , towner = { } " . format ( self.breed, self.owner) 18: 19: 20: d1 d2 d3 Dog ("Beagle") Dog ("Rottweiler", Dog ("Poodle") = "James") = = 21 print "d1: ()".format (di) 22: print "d2: ()".format (d2) 23 print "d3: ".format (d3) (a) Using the line numbers specified, list the order in which the statements are executed. (b) What is the output generated by the program?Explanation / Answer
a) The order of executuon of statements are (please find the comments alongside for explanation):
18 //An object 'd1' of class Dog is created.
2 // The __init__ method is called to initialize "owner" and "breed"
3 // First, the value of "owner" is set
7 // Goes to owner.setter for setting values
8 // Goes to owner.setter for setting values
9 // Goes to owner.setter for setting values
4 // Secondly, the value of "breed" is set
13 // Goes to breed.setter for setting values
14 // Goes to breed.setter for setting values
15 // Goes to breed.setter for setting values
19 //An object 'd2' of class Dog is created.
2 // The __init__ method is called to initialize "owner" and "breed"
3 // First, the value of "owner" is set
7 // Goes to owner.setter for setting values
8 // Goes to owner.setter for setting values
9 // Goes to owner.setter for setting values
4 // Secondly, the value of "breed" is set
13 // Goes to breed.setter for setting values
14 // Goes to breed.setter for setting values
15 // Goes to breed.setter for setting values
20 //An object 'd3' of class Dog is created.
2 // The __init__ method is called to initialize "owner" and "breed"
3 // First, the value of "owner" is set
7 // Goes to owner.setter for setting values
8 // Goes to owner.setter for setting values
9 // Goes to owner.setter for setting values
4 // Secondly, the value of "breed" is set
13 // Goes to breed.setter for setting values
14 // Goes to breed.setter for setting values
15 // Goes to breed.setter for setting values
21 // print d1
16 // The __str__ method is called to return a string to print an object of type dog
17 // The __str__ method is called to return a string to print an object of type dog
10 // Goes to breed @property for getting breed value
11 // Goes to breed @property for getting breed value
12 // Goes to breed @property for getting breed value
5 // Goes to owner @property for getting owner value
6 // Goes to owner @property for getting owner value
22 // print d2
16 // The __str__ method is called to return a string to print an object of type dog
17 // The __str__ method is called to return a string to print an object of type dog
10 // Goes to breed @property for getting breed value
11 // Goes to breed @property for getting breed value
12 // Goes to breed @property for getting breed value
5 // Goes to owner @property for getting owner value
6 // Goes to owner @property for getting owner value
21 // print d3
16 // The __str__ method is called to return a string to print an object of type dog
17 // The __str__ method is called to return a string to print an object of type dog
10 // Goes to breed @property for getting breed value
11 // Goes to breed @property for getting breed value
12 // Goes to breed @property for getting breed value
5 // Goes to owner @property for getting owner value
6 // Goes to owner @property for getting owner value
b) The Output of the following code snippet is:
Explanation: d1 = new Dog("Beagle"). The d1.breed value is set to "Beagle" but Since the owner values is not passed while creating object d1, d1.owner contains the default value "pound". Hence, when we print d1, its __str__method is called which prints
Similarly, for d2 = Dog("Rottweiler", "James"). The d2.breed value is set to "Rottweiler" and the d2.owner value is set to "James". Hence, when we print d2, its __str__method is called which prints
Finally, just like d1, d3 does not contain owner name while creation, hence defalt owner value "pound" is used. Therefore, on printing d3, we get
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.