Я использую Python 3.6 с PyCharm, и это разочаровывает тем, что не поддерживается завершение кода для особых случаев объектов словаря (с фиксированной схемой ключей).
Скажем, например, я создаю и пытаюсь получить доступ к простому объекту словаря, как это:
inventory = {'name': 'hammer', 'price': 2.3}
inventory['']
Когда я помещаю курсор в кавычки '' и нажимаю Ctrl + Space
, я получаю завершение кода, и среда IDE правильно предлагает все возможные ключи в объекте словаря. Это здорово !
Но если я попытаюсь построить ее как служебную функцию, которая возвращает тот же объект dict, скажем, со значениями, которые предоставляет пользователь, но с теми же ключами dict - тогда я больше не получаю завершение кода!
def get_inventory(name: str, price: float):
return {'name': name, 'price': price}
inventory = get_inventory('hammer', 2.3)
inventory[''] # <- Pycharm can't offer any suggestions!
Есть ли обходной путь или решение для этого? Я уже искал похожие решения, но не нашел ничего, что работает. Я знаю, что могу просто преобразовать его в класс Inventory
и получить доступ к свойствам таким образом, но я не хочу делать это по нескольким причинам:
- Мне нужно, чтобы объект был легко конвертируемым в JSON, так как я мог бы много раз передавать его из / в JSON, и
dict
объекты являются самыми легкими для этой цели
- хранить его как класс не имеет большого смысла, так как в любом случае мне просто нужно его как контейнер данных с минимальными свойствами, хранящимися в нем
Будем весьма благодарны за любую помощь или решение о том, как заставить мою среду IDE помочь в завершении кода путем распознавания возможных ключей в таком dict
объекте!