2016-08-17 62 views
0

我正在使用plyplus並試圖讓調試選項打開。__init __(self,grammar,** options)and I pass(grammar_string,myoptdict):TypeError:2 args,3 given

Grammar類的定義如下:

class Grammar(object): 
    def __init__(self, grammar, **options) 

,我通過

options = { 'debug' : True } 
Grammar(long_string, options) 

調用它,但我得到這個錯誤:

TypeError: __init__() takes exactly 2 argument (3 given) 

我要瘋了看這個;怎麼了?這是在Ubuntu上使用Python 2.7,我證實在系統上沒有舊版本的plyplus,只有一個參數。

+5

您正在將'options'作爲單個參數傳遞:字典。你應該做的是傳遞字典的項目作爲關鍵字參數。要做到這一點,請使用'** options'。 – zondo

+0

查看https://stackoverflow.com/questions/9867562/pass-kwargs-argument-to-another-function-with-kwargs – zondo

回答

0

Zondo的回答爲我工作:

語法(mylongstring,**選項)

我一直在使用Python有些年頭了,但整個在此之前從來沒有來。

謝謝!

相關問題