2016-11-29 126 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