2017-08-11 22 views
0
import datetime 


class Loan: 
    def __init__(self, principal, rate, date): 
     self.p=principal 
     self.r=rate 
     self.d=date 

    def amount(self): 
     interest=self.r*self.p 
     now=datetime.date.today() 
     delta=datetime.timedelta(1) 
     then=self.d 
     while then <= now: 
      print then.strftime("%Y-%m-%d") 
      print outstanding 
      outstanding +=interest 
      then+=delta 


x=Loan 
x.p=10000 
x.r=0.1/7 
x.d=datetime.date.today()- 
    datetime.timedelta(5) 
x.amount() 

我希望得到每个区间的日期和余额,但我得到一个错误,我查了一下过去的解决方案和用我的代码进行交叉检查以确保该方法在实例上被调用。当我运行的代码中,我得到的错误是:类型错误:不受约束的方法量()必须与贷款实例被称为第一个参数(什么都没有代替)

类型错误:不受约束的方法量()必须与贷款实例被称为第一个参数(什么都没有代替)

+0

在操作其方法之前,您首先要将Loan类实例化为一个对象(使用圆括号Loan()),请尝试使用p = 10000 r = 0.1/7 d = datetime.date .today() - datetime.timedelta(5) x =贷款(p,r,d)' – davedwards

+1

x = Loan()完全解决。留言Merci。 x = Loan(p,r,d)给出错误'构造函数不带参数'。因此,一次实例化每个参数可以解决它。 – Paul

回答

0
import datetime 


class Loan: 
    def __init__(self, principal = 0, rate = 0, date = 0): 
     self.p=principal 
     self.r=rate 
     self.d=date 

    def amount(self): 
     interest=self.r*self.p 
     now=datetime.date.today() 
     delta=datetime.timedelta(1) 
     then=self.d 
     outstanding = 0 
     while then <= now: 
      print then.strftime("%Y-%m-%d") 
      print outstanding 
      outstanding +=interest 
      then+=delta 


x= Loan() 
x.p=10000 
x.r=0.1/7 
x.d=datetime.date.today()-datetime.timedelta(5) 
x.amount() 

给予默认值来构造ARGS 。

相关问题