Найти - Пользователи
Полная версия: перегрузка функций
Начало » Python для экспертов » перегрузка функций
1
fMad
Вот класс
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”)

тут с параметрами по умолчанию какие то непонятки
slivlen
Сигнатура функции в Python(а также php, perl и тд) включает только имя ф-ции, а не имя функции, тип возвращаемого значения и список аргументов с указанием их типов как в C++ или Java, например.
http://citforum.ru/programming/python/multidispatch/
http://www.artima.com/weblogs/viewpost.jsp?thread=155514
-=<fantom>=-
Перегрузка в Pythone происходит элементарно.
Пример возвращения строкового объекта:

class Chat:
def __str__(self):
return str(self.chat)

string='bla-bla-bla'+chat

Аналогично __add__, __mul__, __repr__ и ещё много чего.
Но имей в виду - перегрузка это сразу тормоз. Раз эдак в пять. Время тратится на разбор. В отличии от Си++.
slivlen
-=<fantom>=-
Это пример перегрузки стандартных операторов. С перегрузкой функций дела обстоят сложнее.
Александр Кошелев
-=<fantom>=-
Но имей в виду - перегрузка это сразу тормоз. Раз эдак в пять.
можно результаты профайлера?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB