Как передать переменную по ссылке?Python

Программы на Python
Ответить
Anonymous
 Как передать переменную по ссылке?

Сообщение Anonymous »

Я написал этот класс для тестирования:

Код: Выделить всё

class PassByReference:
def __init__(self):
self.variable = 'Original'
self.change(self.variable)
print(self.variable)

def change(self, var):
var = 'Changed'
Когда я попытался создать экземпляр, результат был оригинальным. Похоже, что параметры в Python передаются по значению. Это правильно? Как я могу изменить код, чтобы получить эффект передачи по ссылке, чтобы выходные данные были изменены?

Иногда люди удивляются, что код типа x = 1, где x — имя параметра, не влияет на аргумент вызывающей стороны, а код типа x[0] = 1 влияет. Это происходит потому, что назначение элемента и назначение фрагмента – это способы изменить существующий объект, а не переназначать переменную, несмотря на = синтаксис. См. раздел «Почему функция может изменять некоторые аргументы, воспринимаемые вызывающей стороной, но не другие?» подробнее.
См. также В чем разница между передачей по ссылке и передачей по значению? для важного обсуждения терминологии, не зависящей от языка.

Подробнее здесь: https://stackoverflow.com/questions/986 ... -reference
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»