Как использовать метод без инициализации экземпляра? - PullRequest
0 голосов
/ 12 июля 2019

В настоящее время я делаю это, чтобы использовать SampleClass.method1():

output = SampleClass().method1(input_var)

Но вместо этого я хочу сделать это:

output = SampleClass.method1(input_var).

Как мне это сделать?

class SampleClass(object):

    def __init__(self):
        self.var1 = 'var1'
        self.var2 = 'var2'

    def method1(self, input_var):
        self.var3 = self._method2(input_var)
        return self._method3(self.var3)

    def _method2(self):
        pass

    def _method3(self):
        pass

Возможно ли изменить вышеуказанный класс на следующий?

class SampleClass(object):

    def __init__(self, input_var):
        self.var1 = 'var1'
        self.var2 = 'var2'
        return self.method1(input_var)

    def method1(self, input_var):
        self.var3 = self._method2(input_var)
        return self._method3(self.var3)

    def _method2(self):
        pass

    def _method3(self):
        pass

Спасибо.

1 Ответ

1 голос
/ 12 июля 2019

То, что вы ищете, называется статическим методом. И да, вы можете написать один на Python. Хороший пример с объяснением уже выложен здесь .

...