2015-11-02 6 views
0

Я пытаюсь рассчитать налогооблагаемый доход от этого калькулятора, и я продолжаю получать сообщение об ошибке «опечатка не подлежит расшифровке». Ошибка появляется в функции calcPEP. Я пытаюсь передать AGI из моего объекта TaxReturn в свой калькулятор, чтобы рассчитать постепенный отказ от освобождения, а затем рассчитать налогооблагаемый доход.Typo не подлежит подписке

class TaxReturn: 
    def __init__(self, AGI): 
     self.AGI = AGI 

#import math program to retrieve rounding function 
import math 
#assign name to TaxReturn class 
txreturn = TaxReturn() 
#class for pesonal exemption phaseout (PEP) 
class PEP: 
#define phase in rate, personal exemption amount, AGI phaseout thresholds 
    def __init__(self, phase_in_rate, personal_exemption, dependents): 

     self.phase_in_rate = phase_in_rate 
     self.personal_exemption = personal_exemption 
     self.dependents = dependents 

    #calculate PEP using AGI attribute from TaxReturn object 
    def calcPEP (phase_in_rate, personal_exemption, dependents, txreturn): 
     #thresholds by filer status where PEP phase-outs begin 
     #[single, HOH, married joint, married separate] 
     phase_out_threshold = int[258250, 284050, 309900, 154950] 
     for i in phase_out_threshold: 
      if txreturn.AGI >= phase_out_threshold:  
       #calculate the amount to which PEP applies      
       PEP_amount = txreturn.AGI - i 
       #calculate PEP multiplier 
       PEP_amount /= 2500 
       #round up PEP multplier 
       PEP_amount = math.ceil(PEP_amount)    
       PEP_amount = (PEP_amount*phase_in_rate)/100 
       #calculate total reduction of exemptions 
       PEP_amount *= personal_exemption*dependents 
       #calculate taxable income 
       if personal_exemption*dependents - PEP_amount > 0: 
        taxable_inc = txreturn.AGI - (personal_exemption*dependents - PEP_amount)      
       else: 
        taxable_inc = txreturn.AGI 

      else: taxable_inc = txreturn.AGI - personal_exemption*dependents 

      return taxable_inc 

testPEP = PEP(2, 4000, 2) 
print(testPEP.calcPEP(4000, 2, 350000)) 

ответ

1

Может быть больше, но я вижу math.ceil(PEP_amount) = PEP_amount там. Вам нужно поменять местами слева и справа, так как вы не можете назначить значение вызову функции, как указано в сообщении об ошибке.

1

Строка над синтаксической ошибкой показывает вам проблему;

math.ceil(PEP_amount) = PEP_amount 

Вы не можете присвоить значение вызова функции, я думаю, у вас есть в обратном направлении:

PEP_amount = math.ceil(PEP_amount) 
+0

@AIG Да, вы правы. Спасибо за помощь. –