組み込み関数とは

 今まで組み込み関数という言葉を何度か説明なしに使っていたので、ここで組み込み関数について説明します。前回のモジュールの説明の中で、不思議な関数dirというのを使いました。もう一回インタプリタシェルを立ち上げて調べてみましょう。


 >>> dir()
 ['__builtins__', '__doc__', '__name__'] 

 これは前回説明したとおりglobalの名前空間に定義されている名前です。?疑問に思うことはないですか。じゃあ例えばdir関数自身どこに定義されているのでしょう。正解は__builtins__の中にあります。見てみましょう。


 >>> dir(__builtins__)
 ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException',
 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError',
 'Exception', 'False','FloatingPointError', 'FutureWarning', 'GeneratorExit',
 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError',
 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError',
 'None', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError',
 'PendingDeprecationWarning', 'ReferenceError', 'RuntimeError',
 'RuntimeWarning', 'StandardError', 'StopIteration', 'SyntaxError',
 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'True
 ', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError',
 'UnicodeEncodeError','UnicodeError', 'UnicodeTranslateError',
 'UnicodeWarning', 'UserWarning', 'VMSError', 'ValueError', 'Warning',
 'WindowsError', 'ZeroDivisionError', '_', '__debug__', '__import__',
 '__name__', 'abs', 'all', 'any', 'apply', 'basestring', 'bool', 'buffer',
 'callable', 'chr', 'classmethod', 'cmp', 'coerce', 'compile', 'complex',
 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'execfile', 'exit',
 'file', 'filter', 'float', 'frozenset', 'getattr', 'globals', 'hasattr',
 'hash', 'help', 'hex', 'id', 'input', 'int', 'intern',
 'isinstance','issubclass','iter', 'len', 'list', 'locals', 'long', 'map',
 'max', 'min', 'object', 'oct','open', 'ord', 'pow', 'property', 'quit',
 'range', 'raw_input', 'reduce', 'reload', 'repr', 'reversed', 'round',
 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super',
 'tuple', 'type', 'unichr', 'unicode', 'vars', 'xrange', 'zip']

 見つけられましたか。__builtins__の英語を翻訳すると「組み込まれている」という意味で、あらかじめ組み込まれていて、特別なことをしなくてもすぐに使えるということを意味しています。このようにあらかじめ組み込まれている関数を組み込み関数と呼びます。
 この組み込み関数のいくつかについて説明したいと思います。