简体   繁体   English

“ TypeError:super()至少接受1个参数(给定0)”如何解决此问题,我已将参数用作超类名称,但没有用

[英]“TypeError :super() takes at least 1 argument (0 given) ” how to solve this i have used argument as a super class name but it didn't worked

students = []

class Student:
    school_name = 'Maharshi Science school'

    def __init__(self,name,student_id=336):
        self.name = name
        self.student_id= student_id
        students.append(self)

    def __str__(self):
        return "student: " + self.name

    def get_name_capitalize(self):
        return self.name.capitalize()

    def get_school_name(self):
        return self.school_name


class HighschoolStudent(Student):

    school_name = 'Maharshi High School'

    def get_school_name(self):
        return "This is a high school student"

    def get_name_capitalize(self):
        original_value = super().get_name_capitalize()
        return original_value + "-HighschoolStudent"

chirag = HighschoolStudent('chirag')
print(chirag.get_name_capitalize())

This error will only occur if you are using Python 2. To fix this, replace 仅当您使用Python 2时才会发生此错误。要解决此问题,请替换

super().get_name_capitalize()

with

super(HighschoolStudent, self).get_name_capitalize()

If you upgrade to Python 3, your code should work fine. 如果您升级到Python 3,您的代码应该可以正常工作。

You are getting the error due to Python 2. Please try the below code: 由于Python 2,您遇到了错误。请尝试以下代码:

students = []

class Student(object):

    school_name = 'Maharshi Science school'

    def __init__(self,name,student_id=336):
        self.name = name
        self.student_id= student_id
        students.append(self)

    def __str__(self):
        return "student: " + self.name

    def get_name_capitalize(self):
        return self.name.capitalize()

    def get_school_name(self):
        return self.school_name

class HighschoolStudent(Student):

    school_name = 'Maharshi High School'

    def get_school_name(self):
        return "This is a high school student"

    def get_name_capitalize(self):
        original_value = super(HighschoolStudent, self).get_name_capitalize()
        return original_value + "-HighschoolStudent"


chirag = HighschoolStudent('chirag')

print(chirag.get_name_capitalize())

Output: Chirag-HighschoolStudent 输出: Chirag-HighschoolStudent

There are two changes in this: 这有两个更改:

  • class Student --> class Student(object) class Student -> class Student(object)
  • Passing your class name as input in super as mandated by Python 2 按照Python 2的要求将类名作为超级输入传递

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Python super().__init__() 类型错误:super() 需要至少 1 个参数(给定 0) - Python super().__init__() TypeError: super() takes at least 1 argument (0 given) TypeError: super() 需要至少 1 个参数(0 给定)错误特定于任何 python 版本? - TypeError: super() takes at least 1 argument (0 given) error is specific to any python version? Django admin/Chart js 错误 - super() 至少需要 1 个参数(给定 0) - Django admin/ Chart js error - super() takes at least 1 argument (0 given) 收到一条错误消息说super需要1个参数但给定0个参数? - Getting an error saying super takes 1 argument but 0 given? TypeError:find() 至少需要 1 个参数(给定 0) - TypeError: find() takes at least 1 argument (0 given) TypeError:count() 至少需要 1 个参数(给定 0) - TypeError : count() takes at least 1 argument (0 given) Theano TypeError:function()至少接受1个参数(给定1个) - Theano TypeError: function() takes at least 1 argument (1 given) TypeError:zeros_initializer()至少接受1个参数(给定0) - TypeError: zeros_initializer() takes at least 1 argument (0 given) 得到这个称为 TypeError 的错误:count() 至少需要 1 个参数(给定 0) - getting this error called TypeError: count() takes at least 1 argument (0 given) Django TypeError get_object_or_404()至少接受1个参数(给定0) - Django TypeError get_object_or_404() takes at least 1 argument (0 given)
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM