2016-04-11 33 views
0

Bu sorunu, kurumu sınıfına tanıtmak için çok fazla argüman iletmem gereken yerlerle karşılaşıyorum. Bu sorunun üstesinden gelmek konusunda hiçbir fikrim yok.Çok sayıda yapıcı argümanı

user = SpecialStudent(John, Doe, [email protected], 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 

Ben oluşturucu desen veya fabrikada düşündüm, ama bu sorunu çözmek hangi desen bilmiyoruz bunun için başka bir yol varsa. küçük değişikliklerle sonra

+0

Neden bu sizin için bir problem? –

cevap

0

:

sizin Taban sınıfı
  • sizin girişler (benim kodundaki tüm girişler dizeleri) beyan edilmez
  • sınıf bildirimi önce yapıcısı dont kullanma tanımlı değil
    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", "[email protected]", "0612345678", "9988778", "hello") 
    
  • İlgili konular