class HouseLocation():
def __init__(self,street_name,x,y):
self.street_name=street_name
self.x=x
self.y=y
def print_address():
print '{}: {},{}'.format(street_name,x,y)
私は、コードは非常にシンプルであり、私はそれを私は、次のエラーメッセージが表示されます通話クラス*簡単なコード*
k=HouseLocation('lol lo', 3,7)
k.print_address()
を実行しようとすると、私は今、私の問題がある を引き受ける自身を説明して想定し
Traceback (most recent call last):
File "", line 1, in
k.print_address()
TypeError: print_address() takes no arguments (1 given)
私が間違っていることを説明してもらえますか?
メソッドにパラメータとして 'self'を追加します – fafl
メソッドは、それらを所有するオブジェクトを最初のパラメータとして渡します。規約では、これをPythonで 'self'と呼んでいます(しかし' def foobar_method(omg_its_me) 'は構文的に有効です)。 'street_name'、' x'、 'y'は' HouseLocation.print_address'の内部で定義されていないことにも注意してください。メソッドは最初の引数として所有者を取得するので、その属性を使用することになりますが、そのように参照する必要があります。 ( 'self.street_name'、' self.x'、 'self.y') –