>>407
抽象的な問いからあ抽象的な答えしか得られないよ。
何をどのように拡張したいのかをもっと具体化すべし。

例を挙げておくと、Sketch という Python で書かれたドローイングプログラムがある。
http://sketch.sourceforge.net/
このプログラムは Python を使って以下の三つの方法で拡張できるようになっている。
(1) 起動時に実行される設定ファイル (~/.sketch/userhooks.py)
(2) メニューから選ぶと実行されるスクリプト
(3) 新しいファイル形式や描画プリミティブを追加するプラグイン

userhooks.py では、Sketch を実装している各種モジュールを import して
内部変数を書き換えたり (2) のスクリプトや (3) のプラグインを登録したりできる。

スクリプトとプラグインはそれぞれ Sketch 固有の API に従って開発する。
基本的に「このタイミングでこのメソッドが呼ばれる」といういくつかの約束事がある。
スクリプト/プラグイン作成者はその約束事に従ってコーディングすればいいようになっている。
興味があるなら次のドキュメントを読んでみるといいかも知れない。
http://sketch.sourceforge.net/Doc/devguide-20.html
http://sketch.sourceforge.net/Doc/usersguide-5.html