优化上方代码作为一个工具接口要求用户名不可重复
时间: 2024-05-01 15:19:16 浏览: 32
好的,以下是优化后的代码:
```python
class User:
def __init__(self, name):
self.name = name
class UserDatabase:
def __init__(self):
self.users = []
def add_user(self, name):
if not self.is_name_taken(name):
user = User(name)
self.users.append(user)
print(f"User {name} has been added to the database.")
else:
print(f"Username '{name}' is already taken!")
def is_name_taken(self, name):
for user in self.users:
if user.name == name:
return True
return False
```
这个优化后的代码定义了两个类,一个 `User` 类和一个 `UserDatabase` 类。`User` 类只有一个属性 `name`,用来表示用户的用户名。`UserDatabase` 类有一个属性 `users`,用来存储所有已注册的用户。它有两个方法,`add_user` 和 `is_name_taken`。
`add_user` 方法接受一个用户名作为参数,首先调用 `is_name_taken` 方法检查用户名是否已经被占用。如果该用户名未被占用,就创建一个新的 `User` 对象,并将其添加到 `users` 列表中。否则,就输出一个错误信息提示该用户名已被占用。
`is_name_taken` 方法接受一个用户名作为参数,遍历 `users` 列表,检查是否有用户的用户名与给定的用户名相同。如果有,就返回 `True`,否则返回 `False`。
这个优化后的代码保证了用户名不可重复,因为在添加新用户之前,会先检查该用户名是否已经被占用。如果是,就不会添加该用户,并输出一个错误信息。