Почему написано, что super () принимает хотя бы 1 аргумент - PullRequest
0 голосов
/ 20 апреля 2019
    class Member():
    def __init__(self, MemberName, MemberID, SubcribtionPaid):
        self.__MemberName = MemberName
        self.__MemberID = MemberID
        self.__SubcribtionPaid = False
    def SetMemberName(self):
        print(MemberName,self.__MemberName)
    def SetMemberID (self):
        print(MemberID,self.__MemberID)
    def SetSubcriptionPaid(self):
        print(SubcribtionPaid,self.__SubcribtionPaid)





class Jmember(Member):
    def__init__(self,MemberName,MemberID,SubcribtionPaid,DateofJoining):
        super().__init__(MemberName,MemberID,SubcribtionPaid)
        self.__DateofJoining = DateofJoining
    def SetDateofBirth(self):
        print(DateofBirth,self.__DateofJoining)



NewMember = Jmember("Armeen","1245","True","12/3/2015")
NewMember.SetMemberName()
NewMember.SetMemberID()
NewMember.SetSubcriptionPaid()
NewMember.SetDateofJoining()

Я в основном скопировал и вставил код. Я использовал pycharm.Я до сих пор не понимаю, как использовать блок кода.Я не знаю что делать.

Извините, если я вызвал проблему.

Я написал код на python, где один класс наследует атрибуты другого класса.Когда я запускаю код, в строке 26 появляется сообщение о том, что super () принимает по крайней мере 1 аргумент. Даже если я написал аргументы.Я сделал ошибку там. Код , обратная связь

Я хочу увидеть вывод нового члена, который включает в себя имя, идентификатор, оплаченную подписку и дату присоединения.Но ошибка проявляется.

1 Ответ

1 голос
/ 20 апреля 2019

Обновлено мое сообщение, чтобы отразить ваш опубликованный код:

  1. Вы сказали, что используете PyCharm. обратите внимание на красные волнистые линии под секциями, так как они указывают на ошибки.

Первая ошибка: между def и init

не было пробела
def__init__(self, MemberName, MemberID, SubcribtionPaid):

Вторая ошибка: обнаружена в вызовах функций вашего класса: Вам не нужно вызывать класс, который по сути то, что (я) делает

def SetMemberName(self):
        print(MemberName,self.__MemberName)

Третья ошибка: была найдена в вашей трассировке Вы пытались вызвать функцию, которую вы забыли создать

Traceback (most recent call last):
  File "/Users/sumbody/Projects/Python/MemberTest2/main.py", line 29, in <module>
    NewMember.SetDateofJoining()
AttributeError: 'Jmember' object has no attribute 'SetDateofJoining'

Вот рабочий код:

class Member():
    def __init__(self, MemberName, MemberID, SubcribtionPaid):
        self.__MemberName = MemberName
        self.__MemberID = MemberID
        self.__SubcribtionPaid = False
    def SetMemberName(self):
        print(self.__MemberName)
    def SetMemberID (self):
        print(self.__MemberID)
    def SetSubcriptionPaid(self):
        print(self.__SubcribtionPaid)

class Jmember(Member):
    def __init__(self,MemberName,MemberID,SubcribtionPaid,DateofJoining):
        super().__init__(MemberName,MemberID,SubcribtionPaid)
        self.__DateofJoining = DateofJoining
    def SetDateofBirth(self):
        print(self.__DateofJoining)

    def SetDateofJoining(self):
        print(self.__DateofJoining)



NewMember = Jmember("Armeen","1245","True","12/3/2015")
NewMember.SetMemberName()
NewMember.SetMemberID()
NewMember.SetSubcriptionPaid()
NewMember.SetDateofJoining()

Некоторые советы: когда вы учитесь кодировать и отлаживать свой собственный код, неплохо взять какой-нибудь код, который запускается, а затем сломать его. Это звучит странно, но при этом вы научитесь распознавать ошибки, когда они видны в редакторе и во время выполнения. Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...