В python есть ли причина передавать себя статическому методу в классе? - PullRequest
0 голосов
/ 07 ноября 2019

Я просматривал код в Нейросеть одного класса .

Автор создает @staticmethod:

@staticmethod
def custom_ocnn_loss(self,nu, w, V):

, но позже внутри OC_NNfit метод экземпляра, обращается к нему с использованием имени класса и передает self:

model.compile(loss=OC_NN.custom_ocnn_loss(self,nu, w, V), optimizer=opt,metrics=None)

Есть ли причина для этого (т. Е. Создать @staticmethod, который принимает self в качестве аргумента идоступ к методу экземпляра с использованием имени класса)?

1 Ответ

3 голосов
/ 07 ноября 2019

В скрипте функция custom_ocnn_loss имеет декоратор @staticmethod, что означает, что это не метод экземпляра, а статический метод. Переменная self может предлагать другое, но при вызове функции custom_ocnn_loss ей передается переменная self.

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