Jeetesh Nath Ответов: 1

Получение ошибки, когда мой класс содержит метод init со значением по умолчанию и с большим количеством параметров в Python


в Python,

Я определил два метода init внутри класса, как я уже упоминал в фрагменте кода

Теперь, когда мы используем этот класс

Это дает ошибку

Обратная трассировка (самый недавний призыв последнего):
Файл, строка 20, в & lt;модуле>
сотрудник = сотрудник()
TypeError: __init__ () отсутствует 1 обязательный позиционный аргумент: 'workingHrs'



Мой вопрос заключается в том, как я могу использовать как метод init с параметром, так и без него, кроме параметра "self"

Что я уже пробовал:

class Employee:
    def __init__(self):
        print('This is init method')

    def __init__(self, workingHrs):
        print('This is init method with parameter')

employee = Employee()
employee = Employee(1)

Richard MacCutchan

Я не думаю, что Python допускает более одного метода _ _ init_ _ на класс.

1 Ответов

Рейтинг:
12

Kornfeld Eliyahu Peter

Python не поддерживает несколько конструкторов (__init__)
Вы можете создать его с дополнительным параметром и функцией разделения...

class Employee:
  def __init__(self, workingHrs = None):
    if workingHrs is None:
      print('This is init method')
    else:
      print('This is init method with parameter')