Есть ли способ обойти ограничения WeakValueDictionary, чтобы он мог хранить слабые ссылки на встроенные типы, такие как dict или list? Можно ли что-то сделать на уровне C в модуле расширения? Мне действительно нужен контейнер weakref, который может содержать (почти) любой тип объекта.WeakValueDictionary для хранения любого типа
1
A
ответ
1
Согласно Python documentation вы можете создать слабые ссылки на подклассы dict
и list
... это не идеальное решение, но если вы можете создать пользовательский подкласс dict
и использовать его вместо родного dict
, это должно быть достаточно хорошо. (Я никогда не делал этого сам)
Смежные вопросы
- 1. WeakValueDictionary в python
- 2. static_assert для unique_ptr любого типа
- 3. Отливки из Пустоты, хранения любого типа в карте
- 4. Обнаружение хранилищ ЛЮБОГО типа
- 5. Возвращение IQueryable любого типа
- 6. Глубокий замораживание любого типа
- 7. Восстановление любого типа
- 8. Копировать объект любого типа
- 9. среднего вектора любого типа
- 10. Загрузка файлов любого типа
- 11. Как создать определение Functor для любого типа
- 12. Функция для принятия любого типа, но `AnyVal`?
- 13. Регулярное выражение для любого типа двойного числа
- 14. Подстановочные знаки для любого типа с интерфейсом
- 15. Heapsort для любого типа элементов не работает
- 16. Переходя зЬй :: вектора для любого типа функции
- 17. C++ пользовательские литералы для любого типа
- 18. Делегат для любого типа метода - C#
- 19. XSD для любого заказа сложного типа?
- 20. Создайте макрос min() для любого типа массива
- 21. Как реализовать черту для любого итерабельного типа?
- 22. Определение типа ввода для любого регулярного выражения
- 23. Алгоритм коммутации для любого типа данных
- 24. Использование NUnit для проверки исключения любого типа
- 25. Выполнение функции для любого элемента одного типа
- 26. Проверьте, реализует ли объект общий интерфейс для любого типа типа
- 27. Каково использование типа «нуль» для любого ссылочного типа в JAVA?
- 28. Как определить абстрактный класс графа для хранения любого типа данных в его узлах?
- 29. Захват ошибок любого типа переменной
- 30. Возврат любого типа в C#
Проблема в том, что объект, который будет храниться в этом контейнере, будет поступать из кода других людей, а контейнер является «деталью реализации» большего набора классов, поэтому Я бы предпочел избегать требования «должен быть слабым». – 2009-04-03 19:14:13
ах ... ну, я не знаю, как создать полностью общий WeakValueDictionary, который может содержать что угодно вообще. Существуют различные трюки, которые вы можете использовать в особых случаях, хотя, если вы отредактируете вопрос, чтобы указать, какие объекты вам нужны, чтобы иметь слабые ссылки, это может помочь. –