Форум сайта python.su
Вот класс
class Var:
def field_add(self,name,value,type):
t=name,value,type
self.field.append(t)
def field_add(self,name,value):
self.field_add(name,value,“text”)
вот так использую, потому что всегда так перегружал С++ функции (если не считать параметры по умолчанию)
как это делает путём?
var=Var()
var.field_add('name',name)
var.field_add('value',cfg.get(name))
var.field_add('cmd',“add”,“hidden”)
тут с параметрами по умолчанию какие то непонятки
Офлайн
Сигнатура функции в Python(а также php, perl и тд) включает только имя ф-ции, а не имя функции, тип возвращаемого значения и список аргументов с указанием их типов как в C++ или Java, например.
http://citforum.ru/programming/python/multidispatch/
http://www.artima.com/weblogs/viewpost.jsp?thread=155514
Офлайн
Перегрузка в Pythone происходит элементарно.
Пример возвращения строкового объекта:
class Chat:
def __str__(self):
return str(self.chat)
string='bla-bla-bla'+chat
Аналогично __add__, __mul__, __repr__ и ещё много чего.
Но имей в виду - перегрузка это сразу тормоз. Раз эдак в пять. Время тратится на разбор. В отличии от Си++.
Офлайн
-=<fantom>=-
Это пример перегрузки стандартных операторов. С перегрузкой функций дела обстоят сложнее.
Офлайн
-=<fantom>=-можно результаты профайлера?
Но имей в виду - перегрузка это сразу тормоз. Раз эдак в пять.
Офлайн