2016-11-29 164 views
0

我試圖從不同的模塊調用類的靜態方法和獲取:調用靜態方法

AttributeError: ClassObject instance has no attribute 'foo1'

事情都是這樣的結構:
a.py文件內容:

class Conf(): 
    def __init__(self,......): 
     . 
     . 
     . 
    @staticmethod 
    def foo1(): 
     . 
     . 
     . 

b.py文件內容:

from a import Conf 
Conf.foo1() 

我在做什麼錯?

+0

這是同樣的事情,我想在這裏寫的必要證明它 – JavaSa

+0

我不知道這個最小的代碼是你的問題的原因,但由於這個問題是用Python 2標記的,試着從'object'繼承:'class Conf(object):' – DeepSpace

+0

好吧,我現在試試 – JavaSa

回答

1

你正以良好的方式調用你的方法,所以也許你沒有導入好的模塊?

檢查該文件是在b.py加載a

import a 
print a.__file__ 

這將打印您的文件被加載。

-1

ü可以像這樣在b.py

import a 
f=a.Conf() 
f.foo1() 

或u可以分配類變量,u可以使用的,而不是每次調用類變量。

from a import Conf 
f=Conf() 
f.foo1() 

或u可以這樣做

from a import Conf as f 
f().foo1() 
+0

'foo1'是一個靜態方法,而不是一個實例方法... – UnholySheep

+0

靜態方法的重點在於你不需要insta使用它們。 – Jarvis