Как вызвать методы stati c в функциях? Область применения методов c - PullRequest
0 голосов
/ 10 марта 2020

Предположим, я создал класс с методом stati c и хочу запустить этот метод из другого метода классов или функции сценария.

Какова область действия метода stati c?

ex:

def Class myClass:

     @staticmethod
     def mystaticmethod(input):
          print("blah")

def scriptfunc():
     myClass.mystaticmethod()

Это действительно?

Ответы [ 2 ]

1 голос
/ 10 марта 2020

То, что у вас есть, действительно.

Но слишком подробно о цели @staticmethod, вот Short answer:

Объявление @staticmethod будет означать 2 вещи:

  1. Вам не нужны свойства или атрибуты метода, поскольку он не зависит от других классов,
  2. Вам не требуется создавать __init__ или супер метод переопределить его содержимое или атрибуты, и не требует, чтобы подкласс / родительский класс обрабатывал сам себя.
1 голос
/ 10 марта 2020

Вы можете просто сделать ClassName.methodName() из любого места, где доступен ClassName (т. Е. В том же объеме или в другом модуле после импорта ClassName.

Python has документы по приоритетам пространства имен, которые вы можете прочитать здесь . Достаточно сказать, что для объектов в целом их «личное» пространство имен полностью доступно через оператор точки, если доступен сам объект. все переменные и функции определены непосредственно внутри.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...