Встроенные методы, чтобы сделать объект изменяемым

Есть ли в Python встроенные методы, чтобы сделать объект mutable? Что-то вроде std::reference_wrapper в C++. Нужно для передачи в обработчик сигнала внешней неглобальной переменной.

Желаемое поведение:

def foo(x):
    x = 43

x = 42
print(x) # 42
foo(magic_tools.make_mutable(x))
print(x) # 43

Пример на C++:

#include <iostream>
#include <functional>

template<typename T>
void foo(T x) {
    x = 43;
}

int main() {
    auto x = 42;
    std::cout << x << '\n'; // 42
    foo<int&>(std::reference_wrapper<int>{x}); // or foo<int&>(x);
    std::cout << x << '\n'; // 43
}

Имеется в виду сделать новый mutable wrapper объект с переопределённым assignment, а не изменить свойства старого; под обработчиком сигнала понимаю произвольную функцию, которую можно установить через signal.signal(signum, handler).


Ответы (0 шт):