gpt4 book ai didi

Python新手类设计题

转载 作者:太空狗 更新时间:2023-10-29 22:00:15 26 4
gpt4 key购买 nike

我正在尝试找出设计几个类的最佳方法。我对 Python(和一般的 OOP)还很陌生,只是想确保我做的是对的。我有两个类:“用户”和“用户”。

class User(object):
def __init__(self):
pass

class Users(object):
def __init__(self):
self.users = []

def add(self, user_id, email):
u = User()
u.user_id = user_id
u.email = email
self.users.append(u)

users = Users()
users.add(user_id = 1, email = 'bob@example.com')

如果我想检索我的用户,我使用:

for u in users.users:
print u.email

“users.users”似乎有点多余。我这样做对吗?

最佳答案

我会说不是真的。您的 Users 类似乎只是一个用户列表,所以我只是将其设为一个列表而不是整个类。这是我会做的:

class User(object):
def __init__(self, user_id=None, email=None):
self.user_id, self.email = user_id, email

users = []
users.append(User(user_id = 1, email = 'bob@example.com'))

for u in users:
print u.email

如果出于某些其他原因您希望 Users 成为它自己的一个类,您可以让它继承自 list,或者(如果不是)您可以添加这些定义:

class Users(object):
# rest of code
def __iter__(self):
return iter(self.users)

那样的话,你可以简单地说:

users = Users()
...
for u in users:
print u.email

关于Python新手类设计题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2103532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com