首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python速成课程9-8,属性问题

Python速成课程9-8,属性问题
EN

Stack Overflow用户
提问于 2017-09-27 06:53:45
回答 1查看 121关注 0票数 0
代码语言:javascript
复制
class User():

  def __init__(self,first,last,sex,age):
    self.first_name=first
    self.last_name=last
    self.sex = sex
    self.age =age
    self.login_attempts = 0

  def describe_users(self):
    print(self.first_name + " " +self.last_name)
    print("Gender: " + self.sex)
    print("Age: " + str(self.age))

  def greeting_users(self):
    print("Welcome, " + self.first_name + " " + self.last_name + "!\n")

  def increment_login_attempts(self):
    self.login_attempts += 1
    print("Login attempts: " + str(self.login_attempts))

  def reset_login_attempts(self):
    self.login_attempts = 0
    print("Login has been reset")

class Privileges():

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

  def show_privileges(self):
    for x in self.privileges:
      print("The Admin can " + x)

class Admin(User):

  def __init__(self,first,last,sex,age):
    """Initialize attributes of the parent class"""
    super().__init__(first,last,sex,age)
    self.privileges = Privileges()

person_admin= Admin('Kevin','Mark','M',30)
person_admin.Privileges.show_privileges()

所以我在解决这个问题上遇到了困难。我一直收到error Typeerror。想知道你们中是否有人知道问题出在哪里?这个问题的目标是在"Admin“类中创建一个"Privileges”实例作为属性。之后,创建"Admin“的新实例,并使用"show_privileges”显示其权限。

EN

回答 1

Stack Overflow用户

发布于 2017-09-27 07:03:59

确切的错误可能是这样的:

代码语言:javascript
复制
Traceback (most recent call last):
  File "python", line 42, in <module>
  File "python", line 40, in __init__
TypeError: __init__() missing 1 required positional argument: 'privileges'

这是因为您已经为Privileges编写了需要一个参数的构造函数,但在Admin的构造函数中实例化Privileges时没有传递该参数。只需将Privileges的构造函数更改为:

代码语言:javascript
复制
def __init__(self):  # removed argument "privileges"
    self.privileges = ['can add post','can delete post', 'can ban user']

然后,在最后一行,您将希望Privileges小写,因为您引用的是实例而不是类。

代码语言:javascript
复制
person_admin.privileges.show_privileges()

您可以查看working code here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46436964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档