是否可以在不初始化类的情况下从类外部调用静态方法?

Can I call a static method from outside a class without initializing the class?

提问人:jikf 提问时间:9/22/2023 更新时间:9/22/2023 访问量:56

问:

class BaseIndicesLinker:

    def __init__(
        self,
        date: int)

    @staticmethod
    def some_static_function(i: int):
        return datetime.datetime(...)



def retrieve_index_codes_from_index_objects(session, date):

    # converting date to expected datetime format
    datetime = some_static_function(date)

    return all_index_codes

以上不起作用,因为是“未定义”。some_static_function

所以我想我的问题是,是否可以在不初始化类的情况下调用静态函数?BaseIndicesLinker

python 静态方法

评论

3赞 Phix 9/22/2023
@classmethod会是一个更好的用例吗?
0赞 Munakas 9/22/2023
我同意phix
3赞 Rafalon 9/22/2023
如果它是一个静态方法,你可能应该这样称呼它:.另外,“不初始化类”是什么意思?BaseIndicesLinker.some_static_function(date)
0赞 JonSG 9/22/2023
BaseIndicesLinker.some_static_function(1)不调用 。如果这就是你要问的。如果这是你所追求的,你也可以随时做和打电话。__init__()fn = BaseIndicesLinker.some_static_functionfn()

答:

1赞 Sauron 9/22/2023 #1

是的,您可以在不初始化类的情况下调用方法。 您只需要使用后跟 .staticclass namemethod name

datetime = BaseIndicesLinker.some_static_function(date)