Size: a a a

Сообщество Python Программистов

2020 July 13

q

quavo in Сообщество Python Программистов
А не, падажжи
источник

q

quavo in Сообщество Python Программистов
Ну есть вариант, но все равно какое-то
источник

q

quavo in Сообщество Python Программистов
Типа заранее через мидлварь пробрасывать словарь, дальше собирать его
источник

q

quavo in Сообщество Python Программистов
И в другом хендлере уже работать с этим
Но чет не очень
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
даа ещё и этот глобал негде инициировать в случае внезапного рестарта сервера посреди игры. фабрику локов чтоль делать🤔
источник

q

quavo in Сообщество Python Программистов
<Юрий> 👨‍🔬 Чебышев
даа ещё и этот глобал негде инициировать в случае внезапного рестарта сервера посреди игры. фабрику локов чтоль делать🤔
Ну сделай мидлварь
источник

q

quavo in Сообщество Python Программистов
Вроде на самом деле неплохо даже
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
quavo
Ну сделай мидлварь
import asyncio
import typing


class LockFactory:
   _locks: typing.Optional[typing.Dict[int, asyncio.Lock]] = None

   @classmethod
   def get_lock(cls, team_id: int):
       if cls._locks is None:
           cls._locks = {}
       return cls._locks.setdefault(team_id, asyncio.Lock())

попробую вот так, вроде должно получиться
источник

q

quavo in Сообщество Python Программистов
<Юрий> 👨‍🔬 Чебышев
import asyncio
import typing


class LockFactory:
   _locks: typing.Optional[typing.Dict[int, asyncio.Lock]] = None

   @classmethod
   def get_lock(cls, team_id: int):
       if cls._locks is None:
           cls._locks = {}
       return cls._locks.setdefault(team_id, asyncio.Lock())

попробую вот так, вроде должно получиться
Это тоже своего рода глобалы
источник

q

quavo in Сообщество Python Программистов
Просто иначе выглядит
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
quavo
Просто иначе выглядит
независит от рестарта сервера как минимум
источник

q

quavo in Сообщество Python Программистов
<Юрий> 👨‍🔬 Чебышев
независит от рестарта сервера как минимум
Ну, ты просто хотел от глобала избавиться
Ну ладно
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
quavo
Ну, ты просто хотел от глобала избавиться
Ну ладно
не совсем понимаю как полностью избавиться от своего рода глобала.
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
в любом случае где-то будет список локов по командам
источник

q

quavo in Сообщество Python Программистов
<Юрий> 👨‍🔬 Чебышев
не совсем понимаю как полностью избавиться от своего рода глобала.
Ну смотри, в данном случае ты все равно можешь обратиться к этим локам через класс
источник

q

quavo in Сообщество Python Программистов
Как угодно и где угодно
источник

q

quavo in Сообщество Python Программистов
<Юрий> 👨‍🔬 Чебышев
в любом случае где-то будет список локов по командам
Можно сделать мидлварь, где в ините будешь создавать словарь
источник

q

quavo in Сообщество Python Программистов
И вот тут ты уже через мидлварь будешь работать с локами
источник

q

quavo in Сообщество Python Программистов
Ну или необязательно пилить целую мидлварь, можно просто какой-то класс небольшой
У тебя же есть наверное общая мидлварь
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
quavo
Можно сделать мидлварь, где в ините будешь создавать словарь
а как после завершения игры очистить этот словарь?
источник