私は現在、Python3基礎認定試験で合格することを目標として、公式チュートリアルとネット上の公開模試を使って勉強しております。
つい最近「PRIME STUDY」というサイトの模試を受験したところなのですが、どうにも分からない問題が幾つかあって、それらの理解に手間取ってしまっています。
次の問題がそのうちの一つです。
Python
1Q.次の実行結果を得たい場合、コードの【A】【B】の行に入る組み合わせとして適切なものはどれか。なお【A】は★aの行と、【B】は★bの行と同じ数の空白でインデントされている。 2 3[ 実行結果 ] 4I'm Saya. 5I'm Magatama. 6I'm David. 7 8[ コード ] 9class kusanagi(): 10 def s(self): 11 print("I'm Saya.") …★a 12 【A】 13 def m(self): …★b 14 print("I'm Magatama.") 15 16class onimaru(kusanagi): 17 【B】 18 print("I'm David.") 19 20k = kusanagi() 21o = onimaru() 22k.s() 23o.d() 24 25<選択肢> 26・【A】self(m): 【B】self(d) 27・【A】self(m): 【B】def d(self): 28・【A】self(m) 【B】self.d() 29・【A】self.m() 【B】def d(self): 30・【A】self.m() 【B】self.d() 31
この問題、正答は「【A】self.m() 【B】def d(self):」なのですが、何故こちらの答えになるのかが、チュートリアルやPythonの基礎学習サイトをあたってもよく分からない状態にあります。
憶測ではあるのですが・・・
・self.関数名()の()内を何も指定せずに関数を記述した場合は、関数内の内容(今回の場合は「print("")」)が出力される。
・dという関数は初出なので定義する必要がある。
・そしてその定義の際には関数横の()内にはselfと書く決まりがある。
こういう風な事なのではないかと考察しているのですが、
こちらの問題の正答。本当のところはどうしてこちらの答えになるのか、詳しい事をご存じないでしょうか。
また、例えば「self(m)」と記述した場合、どのように出力されるのか。
こちらもご存知でしたらご回答をお願いします。
お手数ではありますが、今回も宜しくお願いします。
回答2件
あなたの回答
tips
プレビュー