2016-07-12 16 views
1

5つのパラメータが必要なオブジェクトに関数があります。私はそのオブジェクトのインスタンスを作成し、関数define(param1,2,3,4,5)を実行すると、5番目のパラメータがないという応答が返されます。ここでpythonレポートのパラメータがありません

は、私のコードの一部です:

class KeyProperties: #Object 
path = None 
keytype = None 
image = None 
name = None 
keyid = None 
occupied = None 

def define(self, name, path, image, keytype, keyid): #The function that is used 
    self.path = path 
    self.keytype = keytype 
    self.image = image 
    self.name = name 
    self.keyid = keyid 
    self.occupied = True 

コードI)が(定義し実行すると:

key = KeyProperties 
    key.define(param1,param2,param3,param4,param5) 

をし、それがkey

TypeError: define() missing 1 required positional argument: 'keyid'

答えて

8

あなたの現在のこのエラーが出ていますKeyPropertiesのインスタンスではなく、クラスそのものです。クラスをインスタンス化し、これを修正する

:従ってdefine 6つのパラメータ(selfを含む)が必要であろう

key = KeyProperties() 
#     ^^ 

をインスタンスメソッドの最初の引数は、インスタンス自体(通常selfと記す)です。クラスをインスタンス化すると、自動的にselfが渡され、defineには5つのパラメータを指定できるようになりました。

関連する問題