python3.7を利用しています。一番下の書き方が正解だと思っています。しかし、上記2つのような書き方を目にしました。特に二番目の書き方だと以下のようなエラーがでます。python3.7では、上2つの書き方はできなくなったのでしょうか?(なぜエラーがでるのかよくわかっていません) こういうときには上2つのような書き方が必要になる、などご教示いただけませんでしょうか?
TypeError: __init__() takes 1 positional argument but 2 were given
以下は、クラスを呼ぶ場所
python
1def _exec(request, _id): 2 # こっちだとエラーはでない 3 a_id = TEST() 4 # 以下だとエラーがでる 5 b_id = TEST(_id) 6 7
python
1class TEST(): 2 def __init__(self, _id): 3 from logging import getLogger 4 logger = getLogger(__name__) 5 logger.info("_id of this is %s", _id) 6 self._id = _id
python
1class TEST(object): 2 def __init__(self, _id): 3 from logging import getLogger 4 logger = getLogger(__name__) 5 logger.info("_id of this is %s", _id) 6 self._id = _id
python
1class TEST: 2 def __init__(self, _id): 3 from logging import getLogger 4 logger = getLogger(__name__) 5 logger.info("_id of this is %s", _id) 6 self._id = _id
classはどこに行ったのでしょうか・・・
すみません、追記しました。
TEST:
じゃなくて
class TEST:
なのでは? という話です・・・
TESTのコンストラクタではloggerとidのどちらを引数に取るのでしょうか・・・。
修正しました。転記ミスです。
> TESTのコンストラクタではloggerとidのどちらを引数に取るのでしょうか・・・。
すみません、こちらも転記ミスをしていました。修正しました。
余計なコメントになりますが、この質問こそ、「必要最小限の再現コードで確認すべき」が当てはまる内容ですね。まずは解決して良かったと思います。hayataka2049氏のおっしゃる通り、一度解決とすべきかと。
回答3件
あなたの回答
tips
プレビュー