.length, а len([123,45,65]);.map (lambda x: x*10), а map(lambda x: x*10, [123,45,65]) и т.п.
class A:
def method(self):
print "Hi: A"
class B(A):
__baseclass = A
def method(self):
print "Hi: B"
self.__baseclass.method(self)
import GblPilotDef
def add_class_method (function, klass, method_name = None):
"""Общий метод для добавления нужного метода к классу"""
method = new.instancemethod (function, None, klass)
if not method_name:
method_name = function.__name__
klass.__dict__[method_name] = method
def gbl_date_print (self):
return "%s.%s.%s" % (self.m_day, self.m_mounth, self.m_year)
add_class_method (gbl_date_print, GblPilotDef.DocDate, "__str__")
Это официальная позиция насчет того, как расширять классы. К чему это приводит?
Да очень просто. К чему может привести наличие хреновой тучи статических функций? К С!
Супер, берем высокоуровневый скриптовый язык и пишем на нем на С.
Почему это нужно? Бывают ситуации, когда нет доступа до исходного определения класса. Он может быть в библиотеке (не хочется ее править) или автогенериться.