Какая процедура вызывается, если выполняется someVariable['key'] = value"

Я пытаюсь написать интерфейс Python с C-API для моего приложения.
Я могу создать модуль и добавить процедуры и импортировать их в контексте Python. Затем я могу запустить скрипты Python для доступа к модулю и процедурам.

Я хотел бы использовать ключ для доступа к данным, как:
module.someVar ['key'] = значение
или же
печать (module.someVar['ключ'])

Затем я хотел бы использовать ключ и данные в процедуре в С-коде.
Какая процедура вызывается в pyTypeObject?

Редактировать: SomeVar - это переменная типа, которую я должен создать. И да, после комментариев это похожий на диктат объект. Кажется, что первый ответ указывает мне на правильную точку, я сейчас проверяю это.

1 ответ

Типы контейнеров

Я думаю, что вы ищете __getitem__ а также __setitem__

например:

class C:
    def __getitem__(self, item):
        print(f"a['{item}'] called")

    def __setitem__(self, item, value):
        print(f"a['{item}'] = {value} called")

a = A()
a["get"]
>> a['get'] called
a["set"] = 0
>> a['set'] = 0 called
Другие вопросы по тегам