Введение в язык Питон


Замыкание - часть 4


    #------- Smalltalk-style (Python) tax calculation -------#

           class TaxCalc:

              def taxdue(self):

                  return (self.income-self.deduct)*self.rate


              def setIncome(self,income):

                  self.income = income

                  return self


              def setDeduct(self,deduct):

                  self.deduct = deduct

                  return self


              def setRate(self,rate):

                        self.rate = rate

                  return self


          print "Smalltalk-style taxes due =", \

                TaxCalc().setIncome(50000).setRate(0.30).setDeduct(10000).taxdue()

Возвращение self каждым установщиком позволяет нам рассматривать текущий экземпляр как результат вызова каждого метода. Как видно в дальнейшем, этот подход имеет интересные общие черты с использованием замыкания в ФП.

Работая с Xoltar toolkit, можно создавать полные замыкания, имеющие требуемое свойство объединения данные с функцией, а также множественные замыкания, несущие в себе различные наборы данных:

    #------- Python Functional-Style tax calculations -------#

          from functional import *


          taxdue        = lambda: (income-deduct)*rate



    Начало  Назад  Вперед



    Книжный магазин