在我在网上看到的大多数学习类的例子中,类的实例是由程序员定义的。有没有什么方法可以创建一个类的实例,其中存储该类的变量是由用户定义的?
这是来自另一个SO问题的对象的示例:
class StackOverflowUser:
def __init__(self, name, userid, rep):
self.name = name
self.userid = userid
self.rep = rep
dave = StackOverflowUser("Dave Webb",3171,500)
如何更改它,以便用户可以基于类创建实例?
Tags:
获取输入并将其存储在变量中,并使用它们创建实例
大体上有两种方法可以做到这一点:
将输入完全放在类之外,然后像平常一样将其传递给
__init__
:这可以说是一个更简单的概念;或者
接受类内的输入,例如使用类方法:
那就叫它:
我更喜欢后者,因为它与它所属的类保持必要的输入逻辑,并且注意到这两个类当前都没有对输入进行任何验证(参见Asking the user for input until they give a valid response)。
如果你想有多个用户,你可以用一个唯一的键(例如他们的
userid
-注意堆栈溢出允许多个用户有相同的名字,这样就不会是唯一的):然后每个用户都可以作为
users[id_of_user]
访问。您可以添加一个检查来拒绝具有重复ID的用户,如下所示:相关问题 更多 >
编程相关推荐