class User:
def __init__(self,first_name,last_name,age,sex):
self.first_name = first_name
self.last_name = last_name
self.age = age
self.sex = sex
self.login_attempts = 0
def increment_login_attempts(self):
self.login_attempts += 1
def reset_login_attempts(self):
self.login_attempts = 0
class Admin(User):
def __init__(self,first_name,last_name,age,sex):
super().__init__(first_name,last_name,age,sex)
self.pvs = Pvs()
class Pvs:
def __init__(self, pvs):
self.pvs = pvs
def printout(self):
print(self.pvs)
admin = Admin("aaa","bbb","43","male")
pvs = ['can add post', 'can delete post', 'can ban user']
admin.pvs.printout()
报错,说:in __init__
self.pvs = Pvs()
TypeError: __init__() missing 1 required positional argument: 'pvs'
我没理解,哪里缺了啊,不是很全的吗?
看了答案,它是先传了一个空列表。
def __init__(self, privileges=[]):
self.privileges = privileges
为啥这么做?
class User:
def __init__(self, first_name, last_name, age, sex):
self.first_name = first_name
self.last_name = last_name
self.age = age
self.sex = sex
self.login_attempts = 0
def increment_login_attempts(self):
self.login_attempts += 1
def reset_login_attempts(self):
self.login_attempts = 0
# 子类
class Admin(User):
def __init__(self, first_name, last_name, age, sex):
super().__init__(first_name, last_name, age, sex)
self.pvs = Pvs()
class Pvs:
def __init__(self):
self.pvs = ['can add post','can delete post','can ban user']
def printout(self):
print(self.pvs)
admin = Admin("aaa", "bbb", "43", "male")
pvs = ['can add post', 'can delete post', 'can ban user']
admin.pvs.printout()