Назад к вопросам
Junior — Middle
76
Как реализовать функциональность, позволяющую пользователям подписываться на обновления других пользователей?
Ответ от нейросети
sobes.tech AI
Для реализации функциональности подписки пользователей друг на друга можно использовать структуру данных, которая хранит связи между пользователями — кто на кого подписан. В 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. Это позволяет эффективно хранить и запрашивать подписки.