Страницы

Поиск по вопросам

воскресенье, 22 декабря 2019 г.

Перегрузка метода внутри класса в Python

#python


Всю жизнь писал на Java, начал изучать python в связи с чем появилось много вопросов.
Например в Java можно писать вот так:

public class test {
    public static void main(String[] args) {

    }

    private void testrunner()
    {

    }

    private void testrunner(int i)
    {

    }

    private void testrunner(String c)
    {

    }
}


Как написать так же на питоне ?
Ну вот пишу я так IDE сразу ругаться начинает

class test:
def testrunner(self):
    pass
def testrunner(self,a):
    pass

    


Ответы

Ответ 1



В Python нет возможности перегрузить метод класса, как например в Java или С. Но есть костыль. Метод может иметь значения параметров по-умолчанию, что совместно с проверкой типа аргумента позволит вам сделать то, что вы хотите: from types import * class Test(object): def testrunner(self, i=None): if isinstance(i, str): print 'c: ', i elif isinstance(i, int): print 'b: ', i else: print 'a'

Комментариев нет:

Отправить комментарий