Правильно ли я использую статический метод?

0

Вопрос

У меня есть большой класс, который выглядит следующим образом:

class Trainer:
    def __init__(self, name, age, height, weight):
        self.name = name
        self.age = age
        self.height = height
        self.weight = weight
    
    def fit(self, dataloader):
        ....DO MODEL TRAINING...
        
        self.save(path=xxx)
        self.load(path=xxx)
    
    def save(self, path):
        self.model.eval()
        torch.save(self.model.state_dict(), path)
    
    @staticmethod
    def load(path: str):
        """Load a model checkpoint from the given path."""
        checkpoint = torch.load(path, map_location=torch.device("cpu"))
        return checkpoint

Отсюда я вижу, что с тех пор, как мой load() не нуждается в себе, так как в load метод, который мы не называем self, тогда мы должны использовать staticmethod. Это правильно?

deep-learning python
2021-11-21 05:32:01
1

Лучший ответ

0

Да, вы можете использовать статический метод здесь. Чтобы использовать статический метод, нам не нужно передавать экземпляр класса, self аргумент, над которым нужно поработать. Статические методы похожи на то , что они просто независимы от экземпляра класса. И их можно вызвать напрямую через Class_name.static_method_name без создания экземпляра для доступа к методу.

Еще несколько чтений здесь

2021-11-21 05:39:53

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................