С помощью синтаксиса подсказки типа, указанного в 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]
или если нет, то как я могу определить такой тип, не заставляя логику проверки думать, что это специальный класс Mutable вместо List[int]? Очевидно, что это будет использоваться как инструмент, позволяющий разработчику легче понять метод, а не как инструмент, который будет использоваться для фундаментального изменения программы.
Для ясности: я осознаю, что Списки по определению изменяемы, но мне интересно, есть ли способ определить, когда они будут изменены, например
>>> def bar(sandwich: Mutable[List[str]], fridge: List[str]):
... sandwich.extend(random.sample(fridge, k=3))
Подробнее здесь: https://stackoverflow.com/questions/596 ... -reference