#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'
Комментариев нет:
Отправить комментарий