[解決済み] Pythonで関数をforward-declare/prototypeする方法は?[重複している]をクリックします。
2022-02-18 14:58:38
質問
C++のような汎用的なPythonプログラムでメソッドのプロトタイプを作成するにはどうすればよいですか?
//PROTOTYPE
do python protoyping
writeHello() //GIVES ERROR AS IT WAS NOT DEFINED YET
def writeHello():
print "Hello"
解決方法は?
Pythonにはプロトタイピングがありません。 必要ない .
Pythonはグローバルを検索する
実行時に
を意味します。
を使用した場合
writeHello
を指定すると、その場でオブジェクトが検索されます。オブジェクトはコンパイル時に存在する必要はありませんが
する
は実行時に存在する必要があります。
C++では、2つの関数が互いに依存し合うようにプロトタイプを作成する必要があります。そうすればコンパイラは、後から定義された2番目の関数を使用していることを突き止めることができます。しかし、Pythonは2番目の関数 の代わりに実行時に そのため、このような前方定義は必要ありません。
例で説明すると
def foo(arg):
if not arg:
return bar()
def bar(arg=None):
if arg is not None:
return foo(arg)
ここで、両方の
foo
と
bar
は、関数が呼び出されたときにグローバルとして検索されます。
bar()
Pythonがコンパイルするために
foo()
が正常に動作することを確認します。
関連
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
python string splicing.join()とsplitting.split()の説明
-
[解決済み] バイトを文字列に変換する
-
[解決済み] 最小限の驚き」と「変更可能なデフォルトの引数
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
pythonを使ったオフィス自動化コード例
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
PicgoのイメージベッドツールをPythonで実装する
-
PythonはWordの読み書きの変更操作を実装している
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み] データ型が理解できない
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].