大致有两种方式可以做到这一点:
- 将输入完全放在类之外,然后
__init__
像往常一样将其传递给:user = StackOverflowUser(raw_input('Name: '),int(raw_input('User ID: ')), int(raw_input('Reputation: ')),
)
可以说这是一个更简单的概念;要么
- 在类中进行输入,例如使用类方法:
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')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)