[解決済み] PythonでGenerics/templates?
2022-02-17 12:48:48
質問
Pythonはジェネリック/テンプレートタイプのシナリオをどのように扱うのですか? 例えば、外部ファイル "BinaryTree.py" を作成して、任意のデータ型に対してバイナリツリーを処理させたいと思っています。
つまり、カスタムオブジェクトの型を渡して、そのオブジェクトのバイナリツリーを作成することができます。 Pythonではどのように行うのですか?
どのように解決するのですか?
Pythonは ダックタイピング そのため、複数の型を処理するための特別な構文は必要ありません。
C++出身者なら、テンプレート関数/クラスで使われる演算が何らかの型に定義されていれば
T
(構文レベルで)その型の
T
をテンプレートに追加します。
つまり、基本的には同じように動作するのです。
- バイナリツリーに挿入したい項目の種類のコントラクトを定義する。
- このコントラクトを文書化する (例: クラスのドキュメントに記載する)
- 契約で指定された操作のみを使ってバイナリツリーを実装する。
- 楽しむ
しかし、明示的な型チェックを書かない限り(これは通常推奨されない)、二分木が選択された型の要素だけを含むことを強制することはできないことに注意してください。
関連
-
Pythonの非常に便利な2つのデコレーターを解説
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] JSONファイルをprettyprintする方法は?
-
[解決済み] 億の相対的輸入
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】csv.Error:イテレータはバイトではなく文字列を返すべき
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み] 'DataFrame' オブジェクトに 'sort' 属性がない
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない