Bird
Raised Fist0

Which constructor definition is correct?

hard🚀 Application Q8 of Q15
Python - Constructors and Object Initialization
You want to create a class Employee where the constructor has default values for department as 'Sales' and salary as 50000. You also want to allow creating an employee with just a name. Which constructor definition is correct?
Adef __init__(self, name, department='Sales', salary=50000):
Bdef __init__(self, department='Sales', salary=50000, name):
Cdef __init__(self, name='Unknown', department='Sales', salary=50000):
Ddef __init__(self, name, department, salary=50000='Sales'):
Step-by-Step Solution
Solution:
  1. Step 1: Identify correct parameter order and defaults

    Name is required, so it must come first without default. department and salary have defaults and come after.
  2. Step 2: Check each option

    def __init__(self, name, department='Sales', salary=50000): correctly places name first, then default parameters. def __init__(self, department='Sales', salary=50000, name): places name last (invalid). def __init__(self, name='Unknown', department='Sales', salary=50000): gives name a default which is allowed but changes requirement. def __init__(self, name, department, salary=50000='Sales'): has invalid syntax.
  3. Final Answer:

    def __init__(self, name, department='Sales', salary=50000): -> Option A
  4. Quick Check:

    Required params first, defaults last [OK]
Quick Trick: Put required params before default ones [OK]
Common Mistakes:
MISTAKES
  • Placing required params after defaults
  • Invalid default assignment syntax
  • Giving required params default values unintentionally

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Python Quizzes