Передача переменной экземпляра в функцию - PullRequest
0 голосов
/ 30 января 2019

Есть ли способ передать ссылку на переменную в функцию экземпляра для ее настройки?

Например, я хочу установить значение bar равным 1,0, используя метод cofigure вследующий класс:

class Foo:
    def __init__(self):
        self.bar = 0.0
        self.configure(self.bar)
    def configure(self, var):
        var = 1.0

foo = Foo()
print(foo.bar)

Я бы ожидал, что foo.bar будет 1,0, но вместо этого это 0,0.

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 30 января 2019

Вы должны назначить фактический атрибут, назначение параметра не будет работать (Python использует семантику передачи по значению для параметров).Вот как:

class Foo:
    def __init__(self):
        self.bar = 0.0
        self.configure(1.0)
    def configure(self, var):
        self.bar = var
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...