PukiWiki


モジュール の変更点


*モジュール [#oe2ce37b]
**Python [#q93b1e00]
1ファイル1モジュール
importで取り込む。ファイル名がモジュール名。

以下のファイルfibo.pyを作成
 def fib(n):  # fibonacchi series up to n
         a, b = 0, 1
         while b < n:
                 print b,
                 a, b = b, a+b
 
 def fib2(n):
         result = []
         a, b = 0, 1
         while b < n:
                 result.append(b)
                 a, b = b, a+b
         return result

次にインタプリタで実行してみる。
 >>> import fibo
 >>> fibo.fib(1000)
 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
 >>> fibo.fib2(100)
 [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
 >>> fibo.__name__
 'fibo'
 >>>

 >>> from fibo import fib, fib2
 >>> fib(500)
 1 1 2 3 5 8 13 21 34 55 89 144 233 377

 >>> from fibo import *
 >>> fib(500)
 1 1 2 3 5 8 13 21 34 55 89 144 233 377
***モジュール検索パス [#dd635c7f]
カレントディレクトリ→環境変数PYTHONPATH
sys.pathに入る。

***モジュールのコンパイル [#u830449d]
aaa.pyのあったディレクトリにaaa.pycがあればこれが使われる。修正時刻もちゃんと見る。pycはプラットフォーム非依存。pycは勝手に作られる。

***標準モジュールsys [#h5ad484c]
 >>> import sys
 >>> sys.ps1
 '>>> '
 >>> sys.ps2
 '... '
 >>> sys.ps1 = 'C> '
 C> print 'Yuck!'
 Yuck!
 C>

***組み込み関数dir() [#a13a8408]
モジュールに入っているやつを全部取得する。
 >>> import fibo, sys
 >>> dir(fibo)
 ['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'fib', 'fib2']
 >>> dir(sys)
 ['__displayhook__', '__doc__', '__excepthook__', '__name__', '__package__', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'hexversion', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'py3kwarning', 'pydebug', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions']
 >>>
組み込み関数を調べる。
 >>> import __builtin__
 >>> dir(__builtin__)
 ['ArithmeticError', 'AssertionError', 'AttributeError', 'DeprecationWarning',
  'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False',
  'FloatingPointError', 'FutureWarning', 'IOError', 'ImportError',
  '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',
  'UserWarning', 'ValueError', 'Warning', 'WindowsError',
  'ZeroDivisionError', '_', '__debug__', '__doc__', '__import__',
  '__name__', 'abs', 'apply', 'basestring', 'bool', 'buffer',
  'callable', 'chr', 'classmethod', 'cmp', 'coerce', 'compile',
  'complex', 'copyright', 'credits', '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', 'license', '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']