Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么说super()至少接受1个参数_Python_Inheritance - Fatal编程技术网

Python 为什么说super()至少接受1个参数

Python 为什么说super()至少接受1个参数,python,inheritance,Python,Inheritance,我基本上是复制粘贴代码。我使用了pycharm。我仍然不知道如何使用代码块。我不知道该怎么办 如果我造成了问题,我很抱歉 我用python编写了一段代码,其中一个类继承了另一个类的属性。当我运行代码时,第26行出现错误,表示super()至少接受1个参数。我在那里犯了错误吗 我想查看新成员的输出,包括成员名称、id、已支付的订阅和加入日期。但显示了错误 更新了我的帖子以反映您发布的代码: 你说你在使用PyCharm。注意章节下方的红色曲线,因为它们指出了错误 第一个错误:def和init之间没有

我基本上是复制粘贴代码。我使用了pycharm。我仍然不知道如何使用代码块。我不知道该怎么办

如果我造成了问题,我很抱歉

我用python编写了一段代码,其中一个类继承了另一个类的属性。当我运行代码时,第26行出现错误,表示super()至少接受1个参数。我在那里犯了错误吗


我想查看新成员的输出,包括成员名称、id、已支付的订阅和加入日期。但显示了错误

更新了我的帖子以反映您发布的代码:

  • 你说你在使用PyCharm。注意章节下方的红色曲线,因为它们指出了错误
  • 第一个错误:def和init之间没有空格

        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()
    
    第二个错误:在类函数调用中发现: 您不必调用本质上就是(self)所做的类

    第三个错误:在回溯中发现 您试图调用一个忘记创建的函数

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

    一些建议,当学习编写和调试自己的代码时,获取一些运行的代码并将其破坏并不是一件坏事。这听起来很奇怪,但在这样做的过程中,您将学会在编辑器和运行时识别错误。快乐编码

    与其链接到图像,不如在代码块中发布您的代码片段,以便人们可以复制/粘贴它,以便在需要时使用代码。您可以对回溯执行相同的操作,以便它在您的帖子中更好地显示。在代码前后使用3个反勾号来使用代码块。另外,发布完整的回溯。实际错误可能发生在报告行之前。您链接到的第24行上没有代码。您是否指向正确的代码?回溯是tbm为您编辑成代码块的错误消息堆栈。但是您需要包含完整的错误消息。Codeblock是一种格式化代码的方法,以便它在您的帖子中很好地显示。在要格式化的代码段前后添加3个反勾号(在tab键上方)。
    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()