/ 実行せずにプログラムでpythonコードを理解する - python、コンセプチュアル

プログラムを実行せずにPythonコードをプログラムで理解する - Python、概念的

私はワークフロー管理システムを実装しています。そこでは、ワークフロー開発者が小さなプロセス機能をオーバーロードして、 Workflow クラス。このクラスは、という名前のメソッドを提供しています。 add_component コンポーネントをワークフローに追加するには(コンポーネントはソフトウェアの実行であるか、またはより複雑になる可能性があります)。

じぶんの Workflow ステータスを表示するためのクラスは、どのコンポーネントがワークフローに追加されたかを知る必要があります。そうするために、私は2つのことを試みました:

  1. プロセス関数を2回実行します。時間は必要なすべてのコンポーネントを集めることを可能にします、2番目のものは実際の実行のためです。問題は、ワークフロー開発者がコンポーネントを追加すること(データベースに要素を追加すること、ファイルを作成すること)以外のことをすると、これが2回行われることです。
  2. 関数のPythonコードを解析して、 add_component 行、これは動作しますが、いくつかのコンポーネントが if / else ステートメントとコンポーネントを実行しないでください。コンポーネントは監視中に表示されます。

他の解決策があるかどうか私は疑問に思います(私のワークフローをXMLまたは構文解析を容易にするものにすることを考えましたが、これはあまり柔軟ではありません)。

回答:

回答№1は0

プログラムを「実行」しなければ何ができるのかわからない(変更したくないものをモックすることもありますが、動いているターゲットで撃つように見える場合もあります)。

あなたが手作りの構文解析をするならば、あなたが逃すいくつかの問題が常にあるでしょう。

コードを2つの関数に分割する必要があります。

  • 最初のコードでは、サイドがなくてもコードはadd_componentのみを追加できます。 実際のコードを実行して どのコンポーネントを追加するかを知るための環境など。
  • もう一つ 副作用があり、追加されたコンポーネントに依存する可能性があります。

XML(または任意の静的フォーマット)の使用は、以下を除いて似ています。

  • 副作用がないことは間違いありません(ドキュメンテーションを尊重するプログラマに頼る必要はありません)。
  • たくさん 柔軟性は劣りますが、必ず必要です。