我有以下问题:
我希望全局可以使用类的方法,并在本地实例化对象。
离。 file:a.py
class A(object):
def __init__(self):
return
def sp_a(self):
print "a"
if __name__ == "__main__":
return A()
file:test_a.py
import A
def run():
sp_a()
由于
答案 0 :(得分:2)
如果这是一个需要全局化的方法,为什么要将它作为一个类的一部分呢?
a.py
def sp_a():
print "a"
test_a.py
from a import sp_a
def run():
sp_a()
答案 1 :(得分:0)
如果它是无状态的,那么你可以通过用@staticmethod
装饰它来使它成为静态方法class A(object):
def __init__(self):
return
@staticmethod
def sp_a():
print "a"
if __name__ == "__main__":
return A()
file:test_a.py
import A
def run():
A.sp_a()
答案 2 :(得分:0)
除了建议使用staticmethod
的其他答案外,您还可以执行此操作:
class A(object):
@staticmethod
def foo():
# code
foo = A.foo
从那时起,foo
是一个独立的名称,您可以直接从模块导入,而无需导入A
。