2013-04-22 4 views
0

Я просто изучаю Python и Django.Как получить доступ к другим методам в классе django?

То, что я хочу сделать что-то вроде этого

csvobject = CSVViewer(file) 
rows = csvobject.get_row_count() 

Это то, что я до сих пор. Помните, что для меня все ново, поэтому я ищу объяснение. Благодарю.

class CSVViewer: 


    def __init__(self, file=None): 
     self.file = file 

    def read_file(self): 
     data = [] 
     file_read = csv.reader(self.file) 
     for row in file_read: 
      data.append(row) 
     return data 


    def get_row_count(self): 
     return len(read_file(self)) 

У меня возникли проблемы с read_file(self)

+0

self.read_file() .. не уверен, почему это получило голосование, чтобы закрыть ... –

+0

Объясните, зачем голосовать за закрытие? Понятно, что здесь спрашивают, я не могу получить доступ к read_file (self) в моем методе get_row_count, почему? – Prometheus

+2

Я не проголосовал за закрытие, но основная проблема, вероятно, в том, что вы не опубликовали трассировку своей ошибки, просто сказав: «У меня проблемы ...». В любом случае, измените его на 'self.read_file'. –

ответ

3

Ну, в первую очередь, это, кажется, вам не хватает import csv, чтобы csv.reader(self.file) работ в методе def read_line(self). Во-вторых, вы должны вызвать метод экземпляра read_file следующим образом: self.read_file() в методе get_row_count. Это должно сработать:

import csv 

class CSVViewer: 


    def __init__(self, file=None): 
     self.file = file 

    def read_file(self): 
     data = [] 
     file_read = csv.reader([self.file]) 
     for row in file_read: 
      data.append(row) 
     return data 


    def get_row_count(self): 
     return len(self.read_file()) 

Смежные вопросы