Junior — Middle
103
Wie implementiert man eine Funktion, die es Benutzern ermöglicht, sich für Updates anderer Benutzer anzumelden?
Antwort von AI
sobes.tech KI
Для реализации функциональности подписки пользователей друг на друга можно использовать структуру данных, которая хранит связи между пользователями — кто на кого подписан. В Python это часто реализуется через базы данных с таблицей подписок или через словари/множества в памяти.
Пример на Python с использованием словаря, где ключ — пользователь, а значение — множество пользователей, на которых он подписан:
class SubscriptionService:
def __init__(self):
self.subscriptions = {} # {user_id: set of user_ids}
def subscribe(self, follower_id, followee_id):
if follower_id == followee_id:
return # нельзя подписаться на себя
self.subscriptions.setdefault(follower_id, set()).add(followee_id)
def unsubscribe(self, follower_id, followee_id):
if follower_id in self.subscriptions:
self.subscriptions[follower_id].discard(followee_id)
def get_followees(self, user_id):
return self.subscriptions.get(user_id, set())
# Использование
service = SubscriptionService()
service.subscribe('user1', 'user2')
service.subscribe('user1', 'user3')
print(service.get_followees('user1')) # {'user2', 'user3'}
В реальном приложении обычно используется база данных с таблицей подписок, где каждая запись содержит follower_id и followee_id. Это позволяет эффективно хранить и запрашивать подписки.