Вызов статических методов

#python #static #static-methods

#python #статический #статические методы

Вопрос:

Как мне вызвать статический метод из другого модуля / приложения (в Django)? Например, я объявляю следующий статический метод

 class SomeClass (object):
    @staticmethod
    def SomeStaticMethod (firstArg, **kwargs):  
        # do something
  

и в другом классе я хочу использовать его следующим образом

 SomeClass.SomeStaticMethod ('first', second=2, third='three', fourth=4)
  

Я попытался импортировать, но получил ошибку NameError: глобальное имя ‘SomeClass’ не определено

 import myapp.SomeClass
  

Ответ №1:

 >>> from somefile import SomeClass
>>> SomeClass.SomeStaticMethod('first', second=2, third='three')
first {'second': 2, 'third': 'three'}
  

Также полезно знать, что статические методы в большинстве случаев совершенно бесполезны, поскольку сам модуль может использоваться в качестве пространства имен для функции. Таким образом:

 def SomeStaticFunction(a, **kwargs):
    # do something
  

И:

 >>> import somefile
>>> somefile.SomeStaticFunction(1, second=2, third='three')
1 {'second': 2, 'third': 'three'}