Pythonには標準モジュールがある。使い方は一般的。
#Simple XML-RPC Serverの例 import xmlrpclib from xmlrpclib import Fault import SocketServer import BaseHTTPServer import sys import os
ここでのポイントはfrom。FROMを使うとローカルの名前空間にロードされる。
from xmlrpclib import Fault def xmlrpclib() : """...
とかくと上書きしてしまうので注意。
インポートされるライブラリパスは、環境変数に依存する。
カレントディレクトリ->PYTHONPATH(PATH書式)->インストールパス
ファイル名が、モジュール名になり、Pythonでの名前空間を表す。
#hoge.py def foo(): print "foo"
#sample.py import hoge hoge.foo()
ファイル名の代わりにディレクトリを使えば、名前空間をネストできる。
クラスに関しても同じようにインポートする。ただし、Javaのような「クラス名=モジュール名」の対応が100%成立すると限らない。
一方で、PHPのように、適当なファイル名でモジュールを作成する、いい加減さでうまくいくようなモノでもない。
Perlの use strict;をイメージするとよいかな。
PHPでのインポート
<?php require_once "Smarty.class.php"; require_once "Zend.php"; $smarty = new Smarty; $zend = new Zend;
- ファイル名とクラス名が一致しなく、銘々規則はいい加減でいい。手軽に使えるので便利
- 一方で、大人数で開発するときに、似た名前のファイルが増殖し、頭を抱える原因になる。
JavaScriptの場合、確固たる手法はない。
<script type="text/javascript" src="./js.cgi?type=initA&user=B" > </script> <script type="text/javascript"> document.write("<script...");//Scriptタグを書き出す eval( xmlHttpResult );//xmlHttpの結果をevalする </script>
- scriptタグの利用
- リクエスト毎に異なるJSファイルを動的生成
- document.writeを利用
- evalの利用
- xmlhttpやiframeの利用
- JSON形式
- JSONP形式 getXXX(
); などがある。
- document.onload()にBindする。
- xmlhttpやiframeの利用