С синтаксисом подсказки типа, заданным в PEP 484 и 585, есть ли способ указать, что параметр функции должен быть изменяемой ссылкой, которая будет изменена функцией?
Например, C# имеет ref
параметры, поэтому в Python есть какой-нибудь эквивалент? например,
>>> def foo(spam: "Mutable[List[int]]"):
... spam.append(sum(spam))
...
>>> a = [1, 2, 3]
>>> foo(a)
>>> a
[1, 2, 3, 6]
или, если нет, как я могу определить такой тип, не заставляя инспекционные логи c думать, что это был специальный класс Mutable
вместо List[int]
? Очевидно, это будет использоваться как инструмент для разработчика, чтобы легче понять метод, вместо того, который будет использоваться для фундаментального изменения программы.
Для ясности, я знаю, что списки по определению являются изменяемыми , но мне интересно, есть ли способ определить , когда будет мутирован, например
>>> def bar(sandwich: Mutable[List[str]], fridge: List[str]):
... sandwich.extend(random.sample(fridge, k=3))