PHP の定数を Python で

PHP のコアで定義されている定数 (の一部) と Python で同等の値を得るための表記の対応表を作ってみました。
間違っている箇所がありましたらコメントでご指摘ください。

マジック定数

PHP Python
__LINE__ -
__FILE__ __file__
__FUNCTION__ -
__CLASS__ self.__class__ *1
__METHOD__ -

C に由来する __LINE__ 相当のものが Python には無いのですが、Traceback が良くできているので __FUNCTION__, __METHOD__ ともども必要になることはかなり少ないと思われます。ちなみに Google で検索すると Python で __LINE__ を実現された方もおられるようです。

システム情報

PHP Python
PHP_VERSION sys.version_info *2
PHP_OS sys.platform
PHP_SAPI -
PHP_EOL os.linesep
DIRECTORY_SEPARATOR os.path.sep
PATH_SEPARATOR os.path.pathsep
PHP_INT_MAX sys.maxint
PHP_INT_SIZE -
- sys.maxunicode
- sys.byteorder
DEFAULT_INCLUDE_PATH sys.path *3

標準入出力

PHP Python
STDIN sys.stdin
STDOUT sys.stdout
STDERR sys.stderr

数学関連

PHP Python
M_E math.e
M_LOG2E math.log(math.e, 2)
M_LOG10E math.log10(math.e)
M_LN2 math.log(2)
M_LN10 math.log(10)
M_PI math.pi
M_PI_2 math.pi / 2
M_PI_4 math.pi / 4
M_1_PI 1 / math.pi
M_2_PI 2 / math.pi
M_2_SQRTPI 2 / math.sqrt(math.pi)
M_SQRT2 math.sqrt(2)
M_SQRT1_2 math.sqrt(0.5)

おまけ1: argc/argv

PHP Python
$_SERVER['argc'] or $argc len(sys.argv)
$_SERVER['argv'] or $argv sys.argv

おまけ2: 環境変数

PHP Python
getenv('key') or $_ENV['key'] os.getenv('key')
putenv('key', 'value') os.putenv('key', 'value')

*1:PHP の __CLASS__ との相違点が二つ。1. クラス名 (文字列) ではなくクラスオブジェクト 2. 継承されている場合、継承先のクラス

*2:PHP と同じ書式にするには '.'.join(map(str, sys.version_info[:3]))

*3:リスト型のオブジェクトで、これを操作することで {get,set}_include_path() 相当のことができる。また、環境変数 PYTHONPATH も関係してくる