构造函数参数太多

2024-10-02 02:37:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到这样的问题,为了实例化类,我必须向构造函数传递很多参数。我不知道如何解决这个问题。你知道吗

user = SpecialStudent(John, Doe, johndoe@example.com, 0612345678, 9988778, hello)

class User(Base):
    def __init__(self, name, surname, email):
        self.name = name
        self.surname = surname
        self.email = email

class Student(User):
    def __init__(self, name, surname, email, phone, student_number):
        super(Student, self).__init__(name, surname, email)
        self.phone = phone
        self.student_number = student_number

class SpecialStudent(Student):
    def __init__(self, name, surname, email, phone, student_number, random_param):
        super(SpecialStudent, self).__init__(name, surname, email, phone, student_number)
        self.random_param = random_param

我已经考虑过builder模式或工厂,但是我不知道哪个模式可以解决这个问题,或者是否有其他方法可以解决这个问题。你知道吗


Tags: nameselfnumberparaminitemaildefphone
1条回答
网友
1楼 · 发布于 2024-10-02 02:37:03

小改动后:

class User(object):
    def __init__(self, name, surname, email):
        self.name = name
        self.surname = surname
        self.email = email

class Student(User):
    def __init__(self, name, surname, email, phone, student_number):
        super(Student, self).__init__(name, surname, email)
        self.phone = phone
        self.student_number = student_number

class SpecialStudent(Student):
    def __init__(self, name, surname, email, phone, student_number, random_param):
        super(SpecialStudent, self).__init__(name, surname, email, phone, student_number)
        self.random_param = random_param

user = SpecialStudent("John", "Doe", "johndoe@example.com", "0612345678", "9988778", "hello")
  1. 未定义基类
  2. 在类声明之前不要使用构造函数
  3. 您的输入没有声明(在我的代码中,所有输入都是字符串)

相关问题 更多 >

    热门问题