具有用户输入的类的示例

具有用户输入的类的示例,第1张

具有用户输入的类的示例

大致有两种方式可以做到这一点

  1. 将输入完全放在类之外,然后
    __init__
    像往常一样将其传递给:
    user = StackOverflowUser(raw_input('Name: '),int(raw_input('User ID: ')), int(raw_input('Reputation: ')),

    )

可以说这是一个更简单的概念;要么

  1. 在类中进行输入,例如使用类方法:
    class StackOverflowUser:def __init__(self, name, userid, rep):     self.name = name    self.userid = userid    self.rep = rep@classmethoddef from_input(cls):    return cls(        raw_input('Name: '),        int(raw_input('User ID: ')),         int(raw_input('Reputation: ')),    )

然后这样称呼:

    user = StackOverflowUser.from_input()

我更喜欢后者,因为它在所属的类中保留了必要的输入逻辑,并且请注意,它们当前都没有对输入的任何验证(请参见例如,要求用户提供输入,直到他们给出有效的响应为止)。


如果您想拥有多个用户,则可以使用唯一键将它们保存在字典中(例如,他们的

userid
-请注意,Stack Overflow允许多个用户使用相同的名称,因此
不会 是唯一的):

users = {}for _ in range(10):  # create 10 users    user = StackOverflowUser.from_input()  # from user input    users[user.userid] = user  # and store them in the dictionary

然后,每个用户都可以通过访问

users[id_of_user]
。您可以添加检查以拒绝具有重复ID的用户,如下所示:

if user.userid in users:    raise ValueError('duplicate ID')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5431451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存