你可以使用其他文件类的函数而不需要实例吗?

时间:2014-06-17 17:46:35

标签: python python-2.7

fileOne.py:

class classOne:
    def myFunc():
        print True

fileTwo.py:

from fileOne import classOne
classOne.myFunc()

或者我必须像这样制作fileTwo.py:

from fileOne import classOne
instanceClass = classOne()
instanceClass.myFunc()

2 个答案:

答案 0 :(得分:4)

将“@staticmethod”放在方法定义之上:

>>> class classOne:
...     @staticmethod
...     def myFunc():
...             print True
... 
>>> classOne.myFunc()
True

答案 1 :(得分:1)

为什么你想首先这样做? Python不是Java (其中每个函数都必须是类的一部分),因此您通常不需要Python中的静态/类方法。

如果函数没有令人信服的理由与特定类相关联(例如与该类的实例密切交互)......那么它不应该是类的一部分。

在Python中,您可以创建一个不属于类的函数:

fileOne.py:

def myFunc():
    print True

fileTwo.py:

from fileOne import myFunc
myFunc()