По наследству Python Класс - PullRequest
0 голосов
/ 06 апреля 2020

следующие два фрагмента кода: «self. Привилегии = привилегии (Admin)»

Когда я изучал Python, я столкнулся с проблемой. Я видел сравнение кода других людей с моим собственным кодом. Возникает вопрос:

Почему необходимо добавлять параметры (Admin) в один сегмент, а не добавлять параметры (Admin) в другой сегмент? сообщите нам причину 100

код 1:

class User():
def __init__(self,first_name,last_name):
    self.first_name = first_name
    self.last_name = last_name
    self.login_attempts = 5

def describe_user(self):
    print("The first name is "+self.first_name.title())
    print("The last name is "+self.last_name.title())

def greet_user(self):
    print("Hello,"+self.first_name.title()+self.last_name)

def increment_login_attempts(self):
    self.login_attempts += 1
    print('Total '+str(self.login_attempts)+' logins')
    return self.login_attempts

def reset_login_attempts(self):
    self.login_attempts = 0
    print('Number of logins is clear!'+'Total '+str(self.login_attempts)+' logins')
    return self.login_attempts

class Privileges():
    def __init__(self,privileges):
    self.privileges = ['can add post', 'can delete post', 'can ban user']

def show_privileges(self):
    print("Admin permission : ")
    for privilege in self.privileges:
        print(privilege)

class Admin(User):
    def __init__(self,first_name,last_name):
        super().__init__(first_name,last_name)
        self.privileges = Privileges(Admin)

my_admin = Admin('hong','tao')
my_admin.privileges.show_privileges()

код 2

  class User(object):
      def __init__(self, first_name, last_name, age, phone_number):
         self.first_name = first_name
         self.last_name = last_name
         self.age = age
         self.phone_number = phone_number

     def describe_user(self):
         full_name = self.first_name + " " + self.last_name
         print(full_name + " is " + str(
         user_one.age) + " years old,and he's phone number is " + user_one.phone_number + ".")

     def greet_user(self):
          full_name = self.first_name + " " + self.last_name
          print("Hello," + full_name + " !")

 class Admin(User):
     def __init__(self, first_name, last_name, age, phone_number):
          super().__init__(first_name, last_name, age, phone_number)
          self.privileges = Priviliges()


 class Priviliges():
     def __init__(self):
          self.privileges = ["can add post", "can delete post", "can ban user"]

     def show_privileges(self):
          print("The power of admin are:")
          for privilege in self.privileges:
               print(privilege)


  # user_one = User('Jackson', 'Yee', 18, '1234567890')
  # user_one.describe_user()
  # user_one.greet_user()

  admin = Admin('Jackson', 'Yee', 18, '1234567890')
  admin.privileges.show_privileges()
...