如何解决python中的属性错误

时间:2016-08-17 07:54:40

标签: python python-2.7 object text-to-speech

在开始时我会说我正在寻找答案,但无法找到它并抱歉这么基本的问题。我用TTS创建了程序。我创建了名为" list_merge"的全局变量,但大多数人都说全局变量是BAD。所以我决定把这个列表放在init中。 PS。忽略空格,它们只是因为我在这里复制而存在。

错误是: AttributeError:' Ver2ProjectWithTTS'对象没有属性' list_merge'

--------------------
Product  |   Price
--------------------
apples   |  5
oranges  |  6
peaches  |  7

我得到了 AttributeError:' Ver2ProjectWithTTS'对象没有属性' list_merge'

任何想法如何避免此错误?嗯我的客观性不好,我不能继续前进而不解决这个问题。 PS。在init def之前使用全局变量它正常工作。 感谢您的帮助:)

1 个答案:

答案 0 :(得分:4)

您必须在使用之前先设置它:

class Ver2ProjectWithTTS(object):

    def __init__(self):
        # first set it
        self.list_merge = []
        self.read_json_file()
        self.read_xml_file()
        self.say_something()

无论如何不在构造函数中做任何高级逻辑,这不是一个好习惯。改为做一个方法:

class Ver2ProjectWithTTS(object):

    def __init__(self):
        # first set it
        self.list_merge = []

    def do_the_job(self):
        self.read_json_file()
        self.read_xml_file()
        self.say_something()

    ...

instance = Ver2ProjectWithTTS()
instance.do_the_job()