2017-05-02 11 views
-1

我有一個Python文件:導入類,然後傳遞參數的功能

# -*- coding: utf-8 -*- 

from bead import Ford 

szotar = {"The" : "A", "sun": "nap", "shining" : "süt", "wind" : "szél", "not" : "nem", "blowing" : "fúj"} 

fd = Ford(szotar) 
fd.fordit("teszt.txt") 

我必須寫福特類,它有一個fordit功能,打開作爲參數傳遞的文件。我寫這個:

class Ford(dict): 
    def fordit(read): 
     fajl = open(read) 
     for sor in fajl: 
      print(sor) 
     fajl.close() 

但我得到的錯誤「TypeError:fordit()只需要1個參數(2給出)」。問題是什麼?

+1

你必須明確地聲明'self'參數。 – user2357112

回答

3

您沒有用必要的參數定義forditf.fordit(x)相當於Ford.fordit(f, x),因此您需要將其定義爲參數兩個參數,第一個參數是調用該方法的對象,並且傳統上(但不一定)命名爲self

(無關,但你應該使用一個with聲明,這保證了即使處於打開狀態時發生錯誤,該文件被關閉。一旦with語句完成的文件,會自動關閉。)

class Ford(dict): 
    def fordit(self, read): 
     with open(read) as fajl: 
      for sor in fajl: 
       print(sor)