Попытка вызова метода экземпляра выводит AttributeError: у объекта нет атрибута - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь запустить простой скрипт на Python, но каким-то образом я получил эту ошибку:

AttributeError: 'Script' object has no attribute 'run'

Мой код выглядит так:

class Script(object):
  def __init__(self, data1, data2, data3):
     self.data1 = data1
     self.data2 = data2
     self.data3 = data3

     def getData1(self):
         return self.data1

     def getData2(self):
         return self.data2

     def getData3(self):
         return self.data3

     def run(self):
         return 'Running successfully'

 script1 = Script('data1', 'data2', 'data3')
 print script1.run()

Было бы здорово, если бы кто-томожет помочь мне:)

Ответы [ 3 ]

0 голосов
/ 23 мая 2018

Судя по форматированию кода в вашем вопросе, кажется, что все функции getData1, getData2, getData3 и run являются замыканиями метода __init__, а не методами самого класса.Это означает, что они не являются методами экземпляра объекта и, следовательно, недоступны извне __init__.

. Вместо этого вы можете переформатировать код так:

class Script(object):
    def __init__(self, data1, data2, data3):
        self.data1 = data1
        self.data2 = data2
        self.data3 = data3

    def getData1(self):
        return self.data1

    def getData2(self):
        return self.data2

    def getData3(self):
        return self.data3

    def run(self):
        return 'Running successfully'

script1 = Script('data1', 'data2', 'data3')
print script1.run()

, что приведет квсе функции упомянутых выше методов класса.

0 голосов
/ 23 мая 2018

С первого взгляда вы должны исправить отступ во второй строке.

0 голосов
/ 23 мая 2018

ваш метод run () и другие методы () определены для идентификатора init (). Попробуйте: -

class Script(object):
    def __init__(self, data1, data2, data3):
        self.data1 = data1
        self.data2 = data2
        self.data3 = data3

    def getData1(self):
        return self.data1

    def getData2(self):
        return self.data2

    def getData3(self):
        return self.data3

    def run(self):
        return 'Running successfully'

script1 = Script('data1', 'data2', 'data3')
print script1.run()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...