Я определил класс в Python следующим образом.
class myclass:
def __init__(self,edate,fdate=""):
print("Constructors with default arguments...")
def __init__(self):
print("Default Constructor")
Я создал объект для этого класса,
obj = myclass()
Он работает нормально.И я ожидал, что следующее создание объекта будет работать,
obj1 = myclass("01-Feb-2019")
Но выдает ошибку, говорящую:
Traceback (most recent call last):
File "class.py", line 9, in <module>
obj = myclass("01-Feb-2019")
TypeError: __init__() takes 1 positional argument but 2 were given
Но если я изменю определение класса следующим образом,
class myclass:
def __init__(self):
print("Default Constructor")
def __init__(self,edate,fdate=""):
print("Constructors with default arguments...")
Теперь obj1 = myclass("01-Feb-2019")
работает.Но obj = myclass()
выдает следующую ошибку:
Traceback (most recent call last):
File "class.py", line 10, in <module>
obj = myclass()
TypeError: __init__() missing 1 required positional argument: 'edate'
Можем ли мы определить перегрузку конструктора в Python?Могу ли я определить конструктор, который принимает пустой аргумент, а также один аргумент?