2013-04-19 35 views
9

Bu konuyla ilgili diğer yayınlara baktım ve net bir cevap bulamadım, ancak eminim ki bir şey basit.AttributeError: 'module' nesnenin özelliği yok

Kodum aşağıdaki yapıya sahiptir ...

import matplotlib 
... 
... 

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

Ben 'xyz' ve örneğinden 'function_a' arıyorum ben hata mesajı alıyorum ne zaman:

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

Okuduğum yazılara dayanarak matplotlib'i içe aktarma yöntemiyle ilgili bir sorun gibi görünüyor, ancak bunu çözemiyorum. Function_A tanımı içinde onu içe aktarmayı denedim (bunun kötü bir form olduğunu düşünüyorum, ancak test etmek istedim), ama yine de aynı hatadır.

'function_A' kodunu başka hiçbir yerde sorun olmadan kullandım, ancak bir modülde bir işlev değil, bir sınıftaki bir yöntemdi.

Herhangi bir yardım için teşekkür ederiz!

cevap

15

Sanırım haklısınız ve bu bir içe aktarma sorunudur. matplotlib modül değil sahip bir figure işlevini yapar:

>>> 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' 

rakam fonksiyonu derin yer almaktadır. Orada onu çekmek için birkaç yolu vardır, ama her zamanki ithalat daha benzer:

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

Eğer bulabileceğiniz örneklerin çoğunluğu tarafından kullanılan, çünkü bu özel sopa için iyi bir fikir, muhtemelen Web, matplotlib gallery'daki gibi. (Galeri, bir şeyi nasıl yapacağımı anlamaya başladığımda hala işe koyduğum ilk yer: İstediğim şeye benzeyen bir görüntü bulup, koda bakıyorum.)

+4

İsa Mesih, Ben ' Bir aptal. Diğer kodum, modülü doğru şekilde alır. Yardım için teşekkürler. – gearhead

İlgili konular