全局返回python类方法?

时间:2012-12-22 00:21:23

标签: python inheritance global

我有以下问题:
我希望全局可以使用类的方法,并在本地实例化对象。

离。 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()      

由于

3 个答案:

答案 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