私の関数はリストを変更するだけです。しかし、 'None'でも何も返さず、 'None'を返すことは望ましくありません。これを修正する方法はありますか?return文はありませんがまだ返されていません。
-4
A
答えて
1
TL;いいえ、Pythonでのデフォルト戻り値の意味はありません。None
Pythonでは、暗黙のうちに「None
」を返すことは、「何も返さない」ことに最も近い方法です。これは、例えば、 Cの場合、void
関数宣言は変数への代入を禁止します。
x = MyFunc()
がx
にいくつかの値を定義し、保存しなければならないため、この動作は、一貫性のためのPython言語の一部です。同様に、すべてが何らかの行動を持っている必要があり、このような
OtherFunc(1, 2, MyFunc())
または
[ 1, 2, 3, MyFunc() ]
または
MyFunc() * 3
として使用しています。暗黙の戻り値None
で、これらの問題はPythonで特定の方法で解決されます。
それははこの方法であることを持っていない - 誰かが再設計した場合にはPythonのこの部分は、いくつかの異なる自己矛盾のアプローチがあるかもしれない、原則的に - たとえばPythonのがいくつかの特別な価値を持つことができますそれは関数呼び出しからのみ返すことができ、エラーを発生させる可能性のある他の式の中に含まれていることが判明した場合に発生します。 3 * MyFunc()
のような場合には、戻り値None
となります。はこのようにエラーを発生させますが、関数の定義に基づいて、起こりうるすべての望ましくないシナリオですぐにそれに頼ることはできません。
しかし、Pythonは暗黙的にNone
を返します。これを変更すると、グローバルな振る舞いに依存するすべてのコード/ライブラリに影響を与えるか、機能定義内で機能を使用する必要があるため、厄介なコンテキスト解析要件を言語に追加する必要があります。
関連する問題
- 1. エラー:return文がありません
- 2. javaエラーがありませんreturn文
- 3. コンパイルエラー:return文がありません
- 4. ネストされたスイッチステートメントのReturn文がありません
- 5. return文は何も返しません
- 6. JScrollPaneはまだ追加されていません。エラーはありません
- 7. Returnのステートメントがありません - int []
- 8. Sql Insert文return "ゼロ/行が挿入されていません"
- 9. str.find return文が間違っていますが、わかりません。理由はわかりません。
- 10. NullReferenceが返されますが、nullではありません
- 11. エラーはありませんが、まだオブジェクトが表示されていません
- 12. AngularJSデータが$ scopeに設定されていません。返される値はありません。
- 13. HDFSはフォーマットされていませんが、エラーはありません
- 14. (Python)エラーはありませんが、プログラムは実行されていません
- 15. サブ関数にreturn文がありませんか? [Javascript]
- 16. メソッドエラー - Javaのreturn文がありません
- 17. cypherステートメントが返されます(変更はありません、行はありません)
- 18. KML - ポリゴンは必要ありませんが、まだ行われません
- 19. Golangでは返り値が返されないメソッドはありません
- 20. Xcodeプロジェクトファイルがありません - まだプロジェクトに定義されています
- 21. Return文が機能しません!
- 22. が定義されていません。 'map'メソッドがありません
- 23. Libgdx HTMLプロジェクトがコンパイルされていません(ソースコードがありません...)
- 24. 私のapiリクエストは何も返されません。エラーメッセージもありません
- 25. php関数return 0または全く返りません
- 26. REGEXP_LIKEによって返された行がありません
- 27. Firebird文にエラーはありませんが、結果はありません
- 28. ビューが返されませんでした。(HttpResponseオブジェクトは返されません)
- 29. SwingWorker(Thread)は死ぬことはありません( "return null;"に達してもまだ生きています)?
- 30. dbから返された行はありませんが、返されるレコードがあります
関数は暗黙の 'None'でも* something *を返す必要があります。その周りに道があるとは思わない。 – Aurora0001
return文のないPython関数は、デフォルトで 'None'を返します。それがまさにそれです。あなたは何を返しますか?あなたが何かを返そうとしないなら、あなたは 'None'のように*何も返さないでおくことをお勧めします。それはそれを行う慣用的な方法です。 – idjaw
「何も返さない」というのは正確に何を意味しますか?それはどのように機能しますか? (例えば 'x = foo()'はどうすればいいですか?) – melpomene