モジュールをロードするときに、モジュールがデフォルトでこれらの関数をエクスポートするとき、およびオブジェクト指向のインターフェイスを使用するときに、必要な関数を明示的にインポートするのは意味がありますか?デフォルトでエクスポートされたときに関数を明示的にインポートし、オブジェクト指向インターフェイスを使用するのは意味がありますか?
0
A
答えて
4
私はこれが主観的だと思いますが、はい、しばしば意味があります。デフォルトのインポートがより便利ですが、明示的なインポートは幾分安全です。何かを誤ってインポートする可能性が低いからです。
[…]オブジェクト指向のインターフェイスを使用する場合は、
モジュールのみオブジェクト指向のインターフェイスを持っている場合(メソッド呼び出しがインポートされたメソッド名の恩恵を受けていないので)、それはデフォルトでは非常に多くをエクスポートするべきではありません。モジュールがの場合は、オブジェクト指向のインタフェースとのいずれも手続き型であり、オブジェクト指向のインタフェースのみを使用している場合は、明示的にインポートを指定することをお勧めします。ほとんど輸入が必要ない(または全く輸入されていない)。これはもちろん、モジュールがデフォルトでプロシージャー関数名のいずれかをエクスポートするかどうかによって異なります。
2
デフォルトでエクスポートされていても、インポートする関数を明示的に宣言することで、使用していないかもしれない他の関数のインポートをモジュールが停止します。
関連する問題
- 1. ghcには、明示的にエクスポートされていないシンボルをインポートする方法がありますか?
- 2. Cのmain関数で静的変数を使用するのは意味がありますか?
- 3. Python:サブパッケージをインポートするのは意味がありますか?
- 4. 構文指向翻訳とは何を意味しますか?
- 5. ブースト関数オブジェクトが指す関数の名前をデバッガに表示させることはできますか?
- 6. JavaScriptで明示的にエクスポートされていないものをインポートする
- 7. PHPで関数の引数として使用される変数代入は何を意味しますか?
- 8. オブジェクト指向プログラミングにCを使用できますか?
- 9. オブジェクト指向のインターフェイス、抽象クラス、コンクリートクラスに関する質問
- 10. 静的なconstexpr変数は意味がありますか?
- 11. ハッシュ関数が増分であることは何を意味しますか?
- 12. groovyクロージャがデリゲートのスコープで定義された変数を変更するには、delegate.theVariableNameを明示的に指定する必要がありますか?
- 13. インスタンスを明示的にインポートします。
- 14. 誰かがPHPのシステム関数をよりオブジェクト指向にしようとしましたか?
- 15. オブジェクト宣言はPythonクラスで何を意味しますか?使用する必要がありますか?
- 16. AzureのWebサイトを使用しているときに、owinを使用する意味がありません
- 17. libmmsの使用中にエラーメッセージが表示されましたが、それはどういう意味ですか?
- 18. この関数はどこにありますか?G_STRUCT_OFFSETは、この関数が実装されていることを意味します。
- 19. dllがLoadLibraryを使用して明示的にリンクされている場合、PEファイルからインポートされた関数をリストする
- 20. XSLで明示的に型指定された変数
- 21. 関数に__getattr__と__getitem__を定義しても意味がありません
- 22. dllから関数をインポートしてエクスポートできますか?
- 23. テキストエディタの表示チェーンでダブルバッファリングを使用するとどれくらい意味がありますか?
- 24. mod_rewriteは `Alias`を自動的に設定しますか、` RewriteBase`を実行するときに明示的に指定する必要がありますか?
- 25. ユニットテストクラスを静的にするのは意味がありますか?
- 26. タイプTのパラメータが期待される関数では、()は何を引数として意味しますか?
- 27. オブジェクト指向プログラミングでは、オブジェクトは多対多の関係を維持する必要がありますか?
- 28. RPC例外の意味/原因 'インターフェイスがエクスポートされていません。'
- 29. 明示的に宣言されたオブジェクトよりも1つの時間オブジェクトを使用しない理由がありますか
- 30. 暗黙と明示の両方のインタフェースを実装するのは意味がありますか?
@downvoter:理由を説明してください。 – ruakh