2015-12-29 112 views
-1

剛剛學習python並跳到tkinter。請幫忙。我得到以下錯誤:tkinter錯誤缺少參數:'self'

File "E:\Program Files\Python34\lib\tkinter\__init__.py", line 1533, in __call__ 
    return self.func(*args) 
TypeError: open() missing 1 required positional argument: 'self' 

以下是我的Python代碼:

from tkinter.filedialog import askopenfilename 

root = tkinter.Tk(className="Its a Full Mad Creation") 
textPad = scrolledtext.ScrolledText(root, width=100, height=80) # creates text area 
def __init__(self): 

    self.file_opt = options = {} 
    options['defaultextension'] = '.php' 
    options['filetypes'] = [('PHP files', '.php'), ('Javascript files', '.js'), ('HTML files', '.htm'), ('HTML files', '.html'), ('CSS files', '.css')] 

def open(self): 
    file = tkinter.filedialog.askopenfile(parent=root, mode='rb', title='Select a php file', **self.file_opt) 
    if file != None: 
     contents = file.read() 
     textPad.insert('1.0', contents) 
     file.close() 

完整的代碼是在這裏:http://pastie.org/private/swpihqat8eo063z2eo6fng

+1

這個班在哪裏? – Rockybilly

+0

http://pastie.org/private/swpihqat8eo063z2eo6fng –

+0

其中是班級名稱? –

回答

0

要在@Rockybilly的問題可能擴大 - 你試圖定義一個類?這就是你編寫的__init__函數的樣子,但實際上並沒有把類本身放在這裏。例如,你需要看起來像這樣的東西:

class SomeClass: # This line is missing! 
    def __init__(self, x): 
     ... code ... 
+0

哦對不起,我只是在學習..我忘了..我以爲只有def纔會工作 –

+0

不用擔心。把所有相關的功能放在這樣的頂線下,看看是否有效。 – Sophologist

+0

這是否解決了問題? – Sophologist