プロが教えるわが家の防犯対策術!

最近、pythonを勉強し始めました。
pycharmを使用し始めているのですが、コンソールから実行すると、よくわからないエラーがずっと出ます。どうしたら、解決できるのでしょうか?

元のコード

class Person:
def __init__(self, name):
self.__name = name

def greet(self):
print('Hello, my name is ' + self.__name)

コンソールから実行

from chapter07.sample07_1_2 import Person
... alice = Person('Alice', 23)
... bob = Person('Bob', 31)

エラー内容

Traceback (most recent call last):
File "<input>", line 2, in <module>
TypeError: __init__() takes 2 positional arguments but 3 were given

A 回答 (1件)

> TypeError: __init__() takes 2 positional arguments but 3 were given



型エラー: __init__()は2つ引数を取るのに3つ与えられています。

つまり、

alice = Person('Alice', 23)
bob = Person('Bob', 31)

の2つ目の引数(実際は隠れたselfが一つ目の引数なんで、三つ目になる)の23、31を受け取る部分がない、って言ってるのです。
それらを受け取らせるなら__init__の定義を変えないといけません。
(パターン的にはageを受け取ってself.ageを作ればいいのかな?)
    • good
    • 0
この回答へのお礼

ホントですね!
ageが抜けていました。
詳しい説明ありがとうございます!

お礼日時:2020/10/17 22:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このQ&Aを見た人がよく見るQ&A