9-12 多个模块 : 将User 类存储在一个模块中, 并将Privileges 和Admin 类存储在另一个模块中。

9-12 多个模块 : 将User 类存储在一个模块中, 并将Privileges 和Admin 类存储在另一个模块中。 再创建一个文件, 在其中创建一个Admin 实例, 并对其调用方
法show_privileges() , 以确认一切都依然能够正确地运行。

#ad9_12.py
class User():
    """Represent a simple user profile."""

    def __init__(self, first_name, last_name, username, email, location):
        """Initialize the user."""
        self.first_name = first_name.title()
        self.last_name = last_name.title()
        self.username = username
        self.email = email
        self.location = location.title()
        self.login_attempts = 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我们将上面的三个放置于不同的模块,并添加适当的模块导入代码。假设我们将 `User` 放置于 `user.py` 模块,将 `Privileges` 放置于 `privileges.py` 模块,将 `Admin` 放置于 `admin.py` 模块。那么,我们可以按照以下方式编写代码: 在 `user.py` : ```python class User: def __init__(self, username, email): self.username = username self.email = email ``` 在 `privileges.py` : ```python class Privileges: def __init__(self): self.privileges = ['can add post', 'can delete post', 'can ban user'] ``` 在 `admin.py` : ```python from user import User from privileges import Privileges class Admin(User): def __init__(self, username, email): super().__init__(username, email) self.privileges = Privileges() ``` 接着,我们可以在一个新的 `main.py` 文件创建各种 `User` 的对象,使得它们能够正确运行。例如: ```python from user import User from admin import Admin user1 = User('Alice', 'alice@example.com') admin1 = Admin('Bob', 'bob@example.com') print(user1.username) # 输出:Alice print(admin1.username) # 输出:Bob print(admin1.privileges.privileges) # 输出:['can add post', 'can delete post', 'can ban user'] ``` 在上面的代码,我们首先从需要的模块导入了所需要的。然后,我们创建了一个普通的 `User` 的对象 `user1`,和一个 `Admin` 的对象 `admin1`。最后,我们分别输出了它们的 `username` 属性和 `privileges` 属性的 `privileges` 列表。由于 `admin1` 对象的 `privileges` 属性是一个 `Privileges` 的实例,我们需要使用 `admin1.privileges.privileges` 来访问它的 `privileges` 列表。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值