python
1def f1(func): 2 def hoge(): 3 print ("名前は、") 4 func 5 return hoge() 6 7 8def f2(name): 9 print (name) 10 11 12f1(f2("佐藤")) 13
上記のコードで、実行結果が以下のようになってしまうのはなぜでしょうか。
佐藤
名前は、
hoge関数内の実行順で出力されることを期待していたのですが...
LouiS0616さん
追加で質問させていただいてよろしいでしょうか。
私が書いたコードの場合、f1(f2("佐藤"))
によって、func=(print("佐藤"))が実行されるため、この時点で、「佐藤」が出力され、その後hoge関数によって「名前は、」が出力されため、
佐藤
名前は、
という出力順になるという認識で合っていますでしょうか。
また、以下のようにした場合、期待通りの結果が得られるのですが、どうして上記コードと出力結果が異なるのかが理解できません。
python
1def f1(func): 2 def hoge(): 3 print ("名前は、") 4 print (func) 5 return hoge() 6 7 8def f2(name): 9 return (name) 10 11 12f1(f2("佐藤")) 13
初歩的な質問で申し訳ありませんが、ご回答いただけると幸いです。
回答3件
あなたの回答
tips
プレビュー