全局返回的python类方法?

2024-04-20 07:21:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下问题:
我想让一个类的方法在没有本地实例化对象的情况下全局可用。你知道吗

示例文件:a.py

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

    def sp_a(self):
        print "a"

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

文件:test\u a.py

import A

def run():
    sp_a()      

谢谢


Tags: 文件对象实例方法pyself示例return
3条回答

除了建议使用staticmethod的其他答案之外,您还可以这样做:

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

foo = A.foo

从这一点来说,foo是一个独立的名称,您可以直接从模块导入,而不必导入A。你知道吗

如果它是无状态的,那么可以用@staticmethod修饰它,使其成为静态方法

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

    @staticmethod
    def sp_a():
        print "a"

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

文件:test\u a.py

import A

def run():
    A.sp_a()      

如果它是一个需要全局的方法,为什么要让它成为类的一部分呢?你知道吗

a.py公司

def sp_a():
    print "a"

测试\u a.py

from a import sp_a

def run():
    sp_a()

相关问题 更多 >