Как передать переменную из функции в класс Python - PullRequest
0 голосов
/ 04 мая 2010

Я пытаюсь передать переменную из функции в класс. Пример кода ниже:

def hello(var):

    return var

class test():
    def __init__(self):
        pass

    def value(self):
        print var

hello(var)
test = test()
test.value()

Я хотел бы передать var в класс test().

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

Ответы [ 4 ]

6 голосов
/ 04 мая 2010

Вам нужно изменить свой класс следующим образом:

class test():
    def __init__(self, var):
        self.var = var

    def value(self):
        print self.var

test_inst = test(var)
test_inst.value()

Также нельзя использовать одно и то же точное имя для ссылки как на экземпляр класса, так и на сам класс.

0 голосов
/ 04 мая 2010

Я думаю, вы можете вызвать функцию hello в функции класса.

def hello (var):
    return var

class test():
    def __init__(self):
        pass

    def value(self):
        var = hello(5)
        print var

test = test()
test.value()
0 голосов
/ 04 мая 2010

Добавить заявление:

global var

к вашему коду:

>>> global var
>>> def hello():
       print var

>>> class test():
       def __init__(self):
           pass

       def value(self):
           print var

>>> var = 15
>>> hello()
15
>>> test().value()
15

Cue стандартный отказ от ответственности в отношении глобальных переменных - это плохо ... но вы так и делаете.

0 голосов
/ 04 мая 2010
class test():
    def __init__(self, var):
        self._var = var

    def value(self):
        print self._var
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...