Всю жизнь писал на 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
Ответ
В 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'
Комментариев нет:
Отправить комментарий