質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

4回答

255閲覧

オブジェクト指向プログラミングで正しく動作しない

sunap220

総合スコア19

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2018/11/18 10:01

オブジェクト指向プログラミングを学習しているのですが、コードのどの部分が誤っているのか分からないので、ご教授お願いします。

python

1class Apple: 2 def _init_(self,w,c,): 3 self.weight = w 4 self.color = c 5 print("Created!") 6 7 8ap1 = Apple(250,"green apple") 9 10print(ap1.weight) 11print(ap1.color) 12

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

_init_ではなく__init__です(アンダーバー2つずつ)。

python3ではすべてのクラスはobjectクラスを暗黙的に継承します。__init__がちゃんと定義されていればobjectクラスの__init__がオーバーライドされ、オブジェクトの生成時に自分で定義した__init__が呼ばれますが、今回定義したのは_init_なので、そのままobjectクラスの__init__が呼ばれて「TypeError: object() takes no parametersobjectのコンストラクタは引数を取りませんよ)」というエラーになります。

object は全てのクラスの基底クラスです。これは、 Python のクラスの全てのインスタンスに共通のメソッド群を持ちます。この関数はいかなる引数も受け付けません。
2. 組み込み関数 — Python 3.6.5 ドキュメント | class object

投稿2018/11/18 10:18

編集2018/11/18 10:24
hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sunap220

2018/11/18 10:24

確かに上記のようなエラーが出てきました! なるほど!そういったことが原因でエラーが発生していたのですね ありがとうございます!勉強になります
guest

0

def _init_def __init__

投稿2018/11/18 10:14

編集2018/11/18 10:15
scsi

総合スコア2840

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

アンダーバーが足りてないですよ。

Python

1class Apple: 2 def __init__(self,w,c,): 3 self.weight = w 4 self.color = c 5 print("Created!")

投稿2018/11/18 10:14

tachikoma

総合スコア3601

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sunap220

2018/11/18 10:20

"_"は前後に2つ必要だったんですね! ありがとうございます!
guest

0

init()

は、

Pyhton

1

init()

の間違いでは? (前後の _ は2つずつ)

投稿2018/11/18 10:13

編集2018/11/18 10:15
pepperleaf

総合スコア6383

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tachikoma

2018/11/18 10:14

アンダーバーがマークダウンに取られてますよ〜
pepperleaf

2018/11/18 10:16

Thniks.. (まだ、この辺のマークダウンが今一つ)
sunap220

2018/11/18 10:25

皆さんありがとうございます!
tachikoma

2018/11/18 11:24

私も以前にやらかした身のゆえ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問