2013-04-19 3 views
9

Я смотрел другие сообщения здесь, на эту тему и не нашел четкого ответа, хотя я уверен, что это что-то простое.AttributeError: объект 'module' не имеет атрибута

Мой код имеет следующую структуру ...

import matplotlib 
... 
... 

class xyz: 
    def function_A(self,...) 
     ... 
     ... 
     fig1 = matplotlib.figure() 
     ... 
     ... 

Я звоню «function_A» из экземпляра «АБВ», и когда я делаю, я получаю сообщение об ошибке:

AttributeError: 'module' object has no attribute 'figure' 

Основываясь на сообщениях, которые я прочитал, кажется, проблема с тем, как я импортирую matplotlib, но я не могу разобраться. Я попытался импортировать его в определение Function_A (я думаю, что это плохая форма, но я хотел ее протестировать), но я по-прежнему ту же ошибку.

Я использовал код 'function_A' в другом месте без проблем, но это была просто функция в модуле, а не метод в классе.

Любая помощь приветствуется!

ответ

15

Я думаю, что вы правы, и это проблема импорта. Модуль matplotlib не имеют в figure функции:

>>> import matplotlib 
>>> matplotlib.figure 
Traceback (most recent call last): 
    File "<ipython-input-130-82eb15b3daba>", line 1, in <module> 
    matplotlib.figure 
AttributeError: 'module' object has no attribute 'figure' 

функция фигуры расположена глубже. Есть несколько способов, чтобы вытащить его, но обычный импорт выглядит как:

>>> import matplotlib.pyplot as plt 
>>> plt.figure 
<function figure at 0xb2041ec> 

Это, вероятно, хорошая идея, чтобы придерживаться этого обычая, так как он используется в большинстве примеров вы найдете на Веб, например, в matplotlib gallery. (Галерея по-прежнему занимает первое место, когда мне нужно выяснить, как это сделать: я нахожу изображение, которое выглядит так, как я хочу, и затем смотрю на код.)

+4

Иисус Христос, м идиот. Мой другой код правильно импортирует модуль. Спасибо за помощь. – gearhead

Смежные вопросы