2

次の質問が
あります。ローカルでインスタンス化されたオブジェクトを使用せずに、クラスのメソッドをグローバルに使用できるようにしたい。

元。ファイル:a.py

class A(object):    
    def __init__(self):
        return

    def sp_a(self):
        print "a"

if __name__ == "__main__":
    return A()

ファイル:test_a.py

import A

def run():
    sp_a()      

ありがとう

4

3 に答える 3

2

それがグローバルである必要があるメソッドである場合、なぜそれをクラスの一部にするのですか?

a.py

def sp_a():
    print "a"

test_a.py

from a import sp_a

def run():
    sp_a()
于 2012-12-22T01:25:01.620 に答える
0

ステートレスの場合は、@staticmethodでデコレーションすることで静的メソッドにすることができます

class A(object):    
    def __init__(self):
        return

    @staticmethod
    def sp_a():
        print "a"

if __name__ == "__main__":
    return A()

ファイル:test_a.py

import A

def run():
    A.sp_a()      
于 2012-12-22T00:25:11.400 に答える
0

あなたを使用することを示唆する他の答えに加えて、これをstaticmethod行うこともできます:

class A(object):
  @staticmethod
  def foo():
    # code

foo = A.foo

その時点から、fooは、をインポートせずにモジュールから直接インポートできるスタンドアロン名ですA

于 2012-12-22T00:26:48.733 に答える