2016-02-21 1 views
-2

Я бегу на Python 3.3.4 на Windows 10Почему при вызове моего класса для моего класса требуется два аргумента?

Ниже мой класс код-

class Curl(): 

    def __init__(self): 
     self.file7 = file7 
     self.Days1 = Days1 

    def readfile(self): 
     ticknum = 0 
     read_ticker = [] 
     ins = open(file7, "r") 
     for line in ins: 
      if line.endswith('\n'): 
       line=line[:-1] 
      read_ticker.append(line) 
      ticknum =+1 
     ins.close() 
     return read_ticker 

    def CalcDates(self, Days1): # Determine dates 
     calculated_dates = dict() 
     Run_Time = (time.strftime("%H/%M/%S")) 
     calculated_dates['Run_Time']= Run_Time 
     Today = date.today() 
     calculated_dates['Today'] = Today 
     End_Date = (Today - timedelta(days=Days1)) 
     calculated_dates ['Start_Date'] = Today 
     Start_Day = str(Today.strftime("%d")) 
     calculated_dates['Start_Day'] = Start_Day 
     Start_Month = str(Today.strftime("%m")) 
     calculated_dates['Start_Month'] = Start_Month 
     Start_Year = str(Today.strftime("%Y")) 
     calculated_dates['Start_Year']= Start_Year 
     End_Day = str(End_Date.strftime("%d")) 
     calculated_dates['End_Day'] = End_Day 
     End_Month = str(End_Date.strftime("%m")) 
     calculated_dates['End_Month']= End_Month 
     End_Year = str(End_Date.strftime("%Y")) 
     calculated_dates['End_Year']= End_Year 
     return calculated_dates 

Это работает, если я сделать следующее;

Я хочу, чтобы он работал, если я меняю линию D1 следующим образом; D1 = Curl.CalcDates (90)

, но это не так. Я получаю следующую ошибку;

Traceback (most recent call last): 
File "C:\Users\Edge\Desktop\readTICKR class432.py", line 56, in <module> 
D1 = Curl.CalcDates(90) 
TypeError: CalcDates() missing 1 required positional argument: 'Days1' 

Зачем мне прикладывать двойные аргументы, когда я вызываю Curl.CalcDates?
Как я могу исправить это, чтобы использовать один аргумент?

ответ

1

Причина, по которой CalcDates является методом экземпляра, поэтому вам нужно сначала создать объект Curl.

D1 = Curl(file7, Days1).CalcDates(90) 

Также необходимо исправить вашу функцию __init__.

def __init__(self, file7, Days1): 
    self.file7 = file7 
    self.Days1 = Days1 
Смежные вопросы