Какая процедура вызывается, если выполняется 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