Understanding Python method signatures and the self parameter
This is a foundational Python question that tests whether you understand how instance methods work and how Python's method-binding mechanism treats the self parameter. It's the kind of gotcha that trips up candidates who have skipped over Python's object model or learned from incomplete tutorials.
The error message is deceptive: it claims the method takes zero positional arguments, yet you only passed one (the instance itself via dot notation). The discrepancy arises from a mismatch between how the method was defined and how Python expects instance methods to be declared. Solving this requires recognizing the implicit argument that Python injects when you call a method on an object, and spotting where the method definition diverges from convention.
- Instance methods vs. static methods vs. class methods
- The role of
self in method signatures - How the dot operator binds methods to instances