########## This file only contains the question 2, 4, and 10. The rest is in the BoundedInt.py. ########## # 2. Modify the template to pass test 1, which checks that int() called on your class will return the value of i. # class BoundedInt(): # def __init__(self, i, min, max): # """ # Create a bounded integer. # Args: # i (int): The initial value of the integer. # min (int): The minimum value of the integer. # max (int): The maximum value of the integer. # """ # self.i = i # self.min = min # self.max = max # def __int__(self): # """ # Convert the bounded integer to int. # Returns: # int: The value of the bounded integer. # """ # return self.i # 4. In that reading material, there's a sentence that starts with "For instance, to evaluate the expression x + y, "... # What do you think the types of x and y are? Guess, without checking first. # What are they, actually? You can use the debugger's local window to find out. # x might be an instance of a class that has defined the __add__() method # And y is the object that is compatible with the x instance for the addition operation. class MyClass: def __init__(self, value): self.value = value def __add__(self, other): if isinstance(other, MyClass): return MyClass(self.value + other.value) elif isinstance(other, int): return MyClass(self.value + other) else: raise TypeError("Unsupported operand type.") # Example usage obj1 = MyClass(5) obj2 = MyClass(10) result1 = obj1 + obj2 # Calls obj1.__add__(obj2) print(result1.value) # Output: 15 result2 = obj1 + 3 # Calls obj1.__add__(3) print(result2.value) # Output: 8 # 10. Think about how you would change the template so it could allow adding a BoundedInt to an emoji, # if there was a hypothetical function sentiment(emoji) which returned a floating point number from -10.0 to 10.0 # which indicated whether the emoji was happy or sad. e.g. BoundedInt(1, min = 1, max = 10) + 😁 would raise ValueError. # By adding the conceptional function 'sentiment(emoji)' in the '__add__()' method # The sentiment will analyze the happy level of the input emoji and return a floating number from a number range # For example: # 10 for a 😊 smiley face # -10 for a frowny face # 0 for a 🍕 # The protential code can be like this: ''' elif isinstance(other, str) and sentiment(other) < 0: aise ValueError("Cannot add a BoundedInt to a sad emoji") '''