Junior — Middle
96
Пайдаланушыларға басқа пайдаланушылардың жаңартуларына жазылу мүмкіндігін беретін функционалды қалай жүзеге асыруға болады?
AI-дан жауап
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. Это позволяет эффективно хранить и запрашивать подписки.