Opensourcetechブログ

OpensourcetechによるNGINX/Kubernetes/Zabbix/Neo4j/Linuxなどオープンソース技術に関するブログです。

Python dir()関数・ビルトイン(組み込み)関数について

 

こんにちは、鯨井貴博@opensourcetechです。

 

Pythonのdir()関数に関するメモです。

 

dir()とは?

Pythonにデフォルトでビルトイン(組み込み)されている関数の一つ。

「>>> from neo4j.v1 import GraphDatabase」などでインポートしたモジュールが定義している名前を確認するものです。

 ※上記だと、GraphDatabaseがモジュール名。

 

なお、その他のビルトイン関数は以下で確認できます。

2. 組み込み関数 — Python 3.6.5 ドキュメント

 

 

dir()の実施

bash-3.2$ python
Python 2.7.10 (default, Oct 6 2017, 22:29:07)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from PIL import Image, ImageFilter・・・画像処理系モジュールのインポート
>>> dir()
['Image', 'ImageFilter', '__builtins__', '__doc__', '__name__', '__package__']
>>> dir(Image)・・・Imageモジュールが定義している名前確認
['ADAPTIVE', 'AFFINE', 'ANTIALIAS', 'BICUBIC', 'BILINEAR', 'BOX', 'CONTAINER', 'CUBIC', 'DECODERS', 'DEFAULT_STRATEGY', 'DecompressionBombError', 'DecompressionBombWarning', 'ENCODERS', 'EXTENSION', 'EXTENT', 'FASTOCTREE', 'FILTERED', 'FIXED', 'FLIP_LEFT_RIGHT', 'FLIP_TOP_BOTTOM', 'FLOYDSTEINBERG', 'HAMMING', 'HAS_CFFI', 'HAS_PATHLIB', 'HUFFMAN_ONLY', 'ID', 'Image', 'ImageMode', 'ImagePointHandler', 'ImageTransformHandler', 'LANCZOS', 'LIBIMAGEQUANT', 'LINEAR', 'MAXCOVERAGE', 'MAX_IMAGE_PIXELS', 'MEDIANCUT', 'MESH', 'MIME', 'MODES', 'NEAREST', 'NONE', 'NORMAL', 'OPEN', 'ORDERED', 'PERSPECTIVE', 'PILLOW_VERSION', 'Path', 'QUAD', 'RASTERIZE', 'RLE', 'ROTATE_180', 'ROTATE_270', 'ROTATE_90', 'SAVE', 'SAVE_ALL', 'SEQUENCE', 'TRANSPOSE', 'TRANSVERSE', 'USE_CFFI_ACCESS', 'VERSION', 'WEB', '_E', '_ENDIAN', '_MAPMODES', '_MODEINFO', '_MODE_CONV', '__builtin__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_apply_env_variables', '_check_size', '_conv_type_shape', '_decompression_bomb_check', '_fromarray_typemap', '_getdecoder', '_getencoder', '_getscaleoffset', '_imaging_not_installed', '_initialized', '_plugins', '_show', '_showxv', '_wedge', 'alpha_composite', 'atexit', 'blend', 'builtins', 'coerce_e', 'collections', 'composite', 'core', 'deferred_error', 'effect_mandelbrot', 'effect_noise', 'eval', 'fromarray', 'frombuffer', 'frombytes', 'fromqimage', 'fromqpixmap', 'fromstring', 'getmodebandnames', 'getmodebands', 'getmodebase', 'getmodetype', 'i8', 'init', 'io', 'isImageType', 'isPath', 'isStringType', 'linear_gradient', 'logger', 'logging', 'math', 'merge', 'new', 'numbers', 'open', 'os', 'preinit', 'radial_gradient', 'register_decoder', 'register_encoder', 'register_extension', 'register_extensions', 'register_mime', 'register_open', 'register_save', 'register_save_all', 'registered_extensions', 'struct', 'sys', 'warnings']
>>> dir(ImageFilter)・・・ImageFilterモジュールが定義している名前確認
['BLUR', 'BoxBlur', 'BuiltinFilter', 'CONTOUR', 'DETAIL', 'EDGE_ENHANCE', 'EDGE_ENHANCE_MORE', 'EMBOSS', 'FIND_EDGES', 'Filter', 'GaussianBlur', 'Kernel', 'MaxFilter', 'MedianFilter', 'MinFilter', 'ModeFilter', 'MultibandFilter', 'RankFilter', 'SHARPEN', 'SMOOTH', 'SMOOTH_MORE', 'UnsharpMask', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'functools']
>>>
>>> from neo4j.v1 import GraphDatabase・・・neo4j(グラフDB)関連のモジュールインポート
>>> dir()
['GraphDatabase', 'Image', 'ImageFilter', '__builtins__', '__doc__', '__name__', '__package__']
>>> dir(GraphDatabase)・・・GraphDatabaseモジュールが定義している名前確認
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'driver', 'uri_schemes', 'value_systems']
>>>
>>> import math・・・数学関連モジュールのインポート
>>> dir(math)・・・数学関連モジュールが定義している名前確認
['__doc__', '__file__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'hypot', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc']

 

 

 

www.slideshare.net

github.com

www.facebook.com

twitter.com

www.instagram.com

 

 

にほんブログ村 IT技術ブログ Linuxへ
Linux

にほんブログ村 IT技術ブログ オープンソースへ
オープンソース

 

Opensourcetech by Takahiro Kujirai