Задать вопрос
@mkone112
Начинающий питонист.

Как воспользоваться указателями в python?

Как в python реализовать подобное поведение?
#include <iostream>

using namespace std;

void change(char* a, char* b)
{
    char temp = *a;
    *a = *b;
    *b = temp;
}

int main(void)
{
    char a = 'x';
    char b = 'y';
    printf("a=%c, b=%c\n", a, b);
    change(&a, &b);

    printf("a=%c, b=%c\n", a, b); 
}

Меня интересует не что-то банальное, вроде увеличения int на единицу, а скажем полная подмена одного экземпляра объекта другим. Подойдут любые способы, может это можно реализовать подменив кусок кода в cpython? Или это можно сделать с помощью cython? Может это умеют какие-нибудь реализации python вроде pypy?
  • Вопрос задан
  • 312 просмотров
Подписаться 1 Простой 1 комментарий
Решение пользователя mkone112 К ответам на вопрос (2)
@mkone112 Автор вопроса
Начинающий питонист.
Черт возьми да! Это возможно. Конечно на данный момент вариант с кучей костылей, но их можно сильно поправить.
>> s = 'string'
>> w = Proxy(s)
>> isinstance(w, str), id(w)
True, 1680141601288
>> print(w)
string
>> w.__wrapped__ = [1, 2, 3]
>> isinstance(w, list), id(w)
True, 1680141601288
>> print(w)
[1, 2, 3]

P.S. отталкивался от https://wrapt.readthedocs.io/en/latest/wrappers.html
Ответ написан
Комментировать