Python 3.4+abcфункция
abc.get_cache_token
abc-служебные
Возвращает текущий токен кеша ABC; меняется при регистрации новых виртуальных подклассов (для инвалидации кешей).
Синтаксис
abc.get_cache_token()
Нужен потому, что ABC умеет принимать виртуальные подклассы уже во время работы программы через register(): результат isinstance() для одной и той же пары может измениться позже. Если вы кешируете такие проверки у себя, храните рядом токен и сбрасывайте кеш, когда он изменился; сам токен — непрозрачное число, сравнивать его осмысленно только на равенство.
Примеры
import abc
print(isinstance(abc.get_cache_token(), int)) # → True
t = abc.get_cache_token()
class Virtual(abc.ABC): pass
print(Virtual.register(list) is list) # → True
print(abc.get_cache_token() != t) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности