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