Sobes.tech
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. Это позволяет эффективно хранить и запрашивать подписки.