0
0
Pythonprogramming~20 mins

Method invocation flow in Python - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Method Invocation Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
Predict Output
intermediate
2:00remaining
Output of chained method calls
What is the output of this Python code involving chained method calls?
Python
class TextProcessor:
    def __init__(self, text):
        self.text = text
    def to_upper(self):
        self.text = self.text.upper()
        return self
    def add_exclamation(self):
        self.text += '!'
        return self
    def get_text(self):
        return self.text

result = TextProcessor('hello').to_upper().add_exclamation().get_text()
print(result)
A"hello"
B"hello!"
C"HELLO"
D"HELLO!"
Attempts:
2 left
💡 Hint
Look at how each method modifies the text and returns self for chaining.
Predict Output
intermediate
2:00remaining
Method call order and output
What will be printed when this code runs?
Python
class Counter:
    def __init__(self):
        self.count = 0
    def increment(self):
        self.count += 1
        return self
    def double(self):
        self.count *= 2
        return self
    def get(self):
        return self.count

c = Counter()
print(c.increment().double().increment().get())
A4
B3
C2
D5
Attempts:
2 left
💡 Hint
Trace the count value step by step through each method call.
🔧 Debug
advanced
2:00remaining
Identify the error in method chaining
This code tries to chain methods but raises an error. What is the error type?
Python
class Builder:
    def __init__(self):
        self.value = ''
    def add_a(self):
        self.value += 'a'
    def add_b(self):
        self.value += 'b'
    def get_value(self):
        return self.value

b = Builder()
print(b.add_a().add_b().get_value())
ANoneType has no attribute 'add_b'
BTypeError
CSyntaxError
DAttributeError
Attempts:
2 left
💡 Hint
Check what each method returns and how chaining works.
🧠 Conceptual
advanced
2:00remaining
Understanding method invocation flow with inheritance
Given these classes, what will be the output of the code below?
Python
class Base:
    def action(self):
        return 'Base'
class Child(Base):
    def action(self):
        return 'Child' + super().action()

obj = Child()
print(obj.action())
A"ChildBase"
B"BaseChild"
C"Child"
D"Base"
Attempts:
2 left
💡 Hint
Look at how super() calls the parent method inside the child method.
Predict Output
expert
3:00remaining
Complex method invocation with side effects
What is the final output of this code?
Python
class Tracker:
    def __init__(self):
        self.log = []
    def step1(self):
        self.log.append('1')
        return self
    def step2(self):
        self.log.append('2')
        return self
    def step3(self):
        self.log.append('3')
        return self
    def get_log(self):
        return ''.join(self.log)

tracker = Tracker()
result = tracker.step1().step2().step1().step3().get_log()
print(result)
A"123"
B"1123"
C"1213"
D"213"
Attempts:
2 left
💡 Hint
Follow the order of method calls and what each appends to the log.