2017-01-06 5 views
1

У меня есть этот небольшой скрипт, реализующий один класс с двумя функциями. Я хотел просто напечатать значение, которое было найдено в первой функции из второй функции, когда я вызываю ее извне класса.Ошибка атрибута при использовании self

Проблема
Это казалось очень простым после прочтения этой article над собой, но я ничего не пытаюсь, кажется, работает. Я получаю ошибки атрибутов:

class search: 
    def test(self): 
     self.here = 'hi' 
     self.gone = 'bye' 
     self.num = 12 

    def tester(self): 
     return "{}".format(self.here) 

s = search() 
s.tester() 
print (s.gone) 

Возвраты ...

AttributeError: 'search' object has no attribute 'here'

Вопрос
Как я могу изменить этот сценарий для достижения результата я ищу?

ответ

2

определяют «здесь»

class search: 
    here=None 
    def __init__(self): 
    self.here='hi' 

    def test(self): 
    ... 
+0

Я хочу сохранить значения, назначенные первой функции. Это просто делает эту глобальную переменную нулевой и ничего не печатает. – ITSUUUUUH

+1

затем используйте конструктор __ init __ для установки значений, обновленный – Mate

+0

А, вот что я искал. Извините, новичок в python. – ITSUUUUUH

1

проблема вы никогда не выполнить тест функции (Self), которые инициируют переменную. вы можете вызвать его с помощью s.test() до s.tester()

+0

Это также сработало для меня. Благодаря! – ITSUUUUUH