{ "metadata": { "name": "", "signature": "sha256:fad6e08d2a622698259a4ac5227521a77b805291f2084ff0151626f9b061a128" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "***\n", "# 11. \ubaa8\ub4c8\n", "***\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## 01 \ubaa8\ub4c8\uc774\ub780?\n", "***\n", "- \ubaa8\ub4c8: \ud30c\uc774\uc36c \ud504\ub85c\uadf8\ub7a8 \ud30c\uc77c\ub85c\uc11c \ud30c\uc774\uc36c \ub370\uc774\ud130\uc640 \ud568\uc218\ub4f1\uc744 \uc815\uc758\ud558\uace0 \uc788\ub294 \ub2e8\uc704\n", " - \ubaa8\ub4c8\uc744 \uc0ac\uc6a9\ud558\ub294 \uce21\uc774 \ubaa8\ub4c8\uc5d0 \uc815\uc758\ub41c \ud568\uc218\ub098 \ubcc0\uc218 \uc774\ub984\uc744 \uc0ac\uc6a9\ud558\ub3c4\ub85d \ud5c8\uc6a9\ud558\ub294 \uac83\n", " - \uc11c\ub85c \uc5f0\uad00\ub41c \uc791\uc5c5\uc744 \ud558\ub294 \ucf54\ub4dc\ub4e4\uc744 \ubb36\uc5b4\uc11c \ub3c5\ub9bd\uc131\uc744 \uc720\uc9c0\ud558\ub418 \uc7ac\uc0ac\uc6a9 \uac00\ub2a5\ud558\uac8c \ub9cc\ub4dc\ub294 \ub2e8\uc704\n", "- \ubaa8\ub4c8\uc758 \uc885\ub958\n", " - \ud45c\uc900 \ubaa8\ub4c8\n", " - \ud30c\uc774\uc36c \uc5b8\uc5b4 \ud328\ud0a4\uc9c0 \uc548\uc5d0 \uae30\ubcf8\uc801\uc73c\ub85c \ud3ec\ud568\ub41c \ubaa8\ub4c8\n", " - \uc0ac\uc6a9\uc790 \uc0dd\uc131 \ubaa8\ub4c8\n", " - \uac1c\ubc1c\uc790\uac00 \uc9c1\uc811 \uc815\uc758\ud55c \ubaa8\ub4c8\n", " - \uc368\ub4dc \ud30c\ud2f0 \ubaa8\ub4c8\n", " - \ub2e4\ub978 \uc5c5\uccb4\ub098 \uac1c\uc778\uc774 \ub9cc\ub4e4\uc5b4\uc11c \uc81c\uacf5\ud558\ub294 \ubaa8\ub4c8" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-1 \ubaa8\ub4c8\uc740 \uc5b4\ub514\uc5d0 \uc800\uc7a5\ub418\ub294\uac00\n", "- \ubaa8\ub4c8\uc774 \uc815\uc758\ub418\uace0 \uc800\uc7a5\ub418\ub294 \uacf3\uc740 \ud30c\uc77c\n", " - \ud30c\uc77c\n", " - \ubaa8\ub4c8 \ucf54\ub4dc\ub97c \uc800\uc7a5\ud558\ub294 \ubb3c\ub9ac\uc801\uc778 \ub2e8\uc704\n", " - \ubaa8\ub4c8\n", " - \ub17c\ub9ac\uc801\uc73c\ub85c \ud558\ub098\uc758 \ub2e8\uc704\ub85c \uc870\uc9c1\ub41c \ucf54\ub4dc\uc758 \ubaa8\uc784\n", "- \ud30c\uc774\uc36c \ubaa8\ub4c8\uc774 \uc815\uc758\ub418\ub294 \ud30c\uc77c\uc758 \ud655\uc7a5\uc790: .py" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-2 \uc0ac\uc6a9\uc790 \ubaa8\ub4c8 \ub9cc\ub4e4\uae30\uc640 \ud638\ucd9c\ud558\uae30" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#File: mymath.py\n", "mypi = 3.14\n", "\n", "def add(a, b):\n", " return a + b\n", "\n", "def area(r):\n", " return mypi * r * r" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \ubaa8\ub4c8 \uc774\ub984\uc740 \ud574\ub2f9 \ubaa8\ub4c8\uc744 \uc815\uc758\ud55c \ud30c\uc77c \uc774\ub984\uc5d0\uc11c .py\ub97c \uc81c\uc678\ud55c \uac83\n", " - \ubaa8\ub4c8\uc744 \ubd88\ub7ec\uc624\ub294 \ud0a4\uc6cc\ub4dc: import\n", "- \ubaa8\ub4c8\uc5d0\uc11c \uc815\uc758\ud55c \uc774\ub984 \uc0ac\uc6a9\ud558\uae30" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import mymath\n", "\n", "print dir(mymath) # mymath\uc5d0 \uc815\uc758\ub41c \uc774\ub984\ub4e4 \ud655\uc778\ud558\uae30\n", "print mymath.mypi # mymath \uc548\uc5d0 \uc815\uc758\ub41c mypi\ub97c \uc0ac\uc6a9\ud55c\ub2e4\n", "print mymath.area(5) # mymath \uc548\uc5d0 \uc815\uc758\ub41c area\ub97c \uc0ac\uc6a9\ud55c\ub2e4" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'add', 'area', 'mypi']\n", "3.14\n", "78.5\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-3 \ubaa8\ub4c8\uc744 \uc65c \uc0ac\uc6a9\ud558\ub294\uac00?\n", "- \ud568\uc218\uc640 \ubaa8\ub4c8\n", " - \ud568\uc218: \ud30c\uc77c \ub0b4\uc5d0\uc11c \uc77c\ubd80 \ucf54\ub4dc\ub97c \ubb36\ub294 \uac83\n", " - \ubaa8\ub4c8: \ud30c\uc77c \ub2e8\uc704\ub85c \ucf54\ub4dc\ub4e4\uc744 \ubb36\ub294 \uac83\n", " - \ube44\uc2b7\ud558\uac70\ub098 \uad00\ub828\ub41c \uc77c\uc744 \ud558\ub294 \ud568\uc218\ub098 \uc0c1\uc218\uac12\ub4e4\uc744 \ubaa8\uc544\uc11c \ud558\ub098\uc758 \ud30c\uc77c\uc5d0 \uc800\uc7a5\ud558\uace0 \ucd94\ud6c4\uc5d0 \uc7ac\uc0ac\uc6a9\ud558\ub294 \ub2e8\uc704\n", "- \ub300\ud45c\uc801\uc778 \ud45c\uc900 \ubaa8\ub4c8 \uc608\n", " - math\n", " - string\n", "- \ubaa8\ub4c8 \uc0ac\uc6a9\uc758 \uc774\uc810\n", " - \ucf54\ub4dc\uc758 \uc7ac\uc0ac\uc6a9\n", " - \ud504\ub85c\uadf8\ub7a8 \uac1c\ubc1c\uc2dc\uc5d0 \uc804\uccb4 \ucf54\ub4dc\ub4e4\uc744 \uc5ec\ub7ec \ubaa8\ub4c8 \ub2e8\uc704\ub85c \ubd84\ub9ac\ud558\uc5ec \uc124\uacc4\ud568\uc73c\ub85c\uc368 \uc791\uc5c5\uc758 \ud6a8\uc728\uc744 \ub192\uc77c \uc218 \uc788\uc74c\n", " - \ubcc4\ub3c4\uc758 \uc774\ub984 \uacf5\uac04(\uc2a4\ucf54\ud504)\ub97c \uc81c\uacf5\ud568\uc73c\ub85c\uc368 \ub3d9\uc77c\ud55c \uc774\ub984\uc758 \uc5ec\ub7ec \ud568\uc218\ub098 \ubcc0\uc218\ub4e4\uc774 \uac01 \ubaa8\ub4c8\ub9c8\ub2e4 \ub3c5\ub9bd\uc801\uc73c\ub85c \uc815\uc758\ub420 \uc218 \uc788\ub2e4.\n", "- \ubcc4\ub3c4 \ud30c\uc77c \ub0b4\uc5d0 \ud30c\uc774\uc36c \ucf54\ub4dc\ub97c \uc800\uc7a5\ud560 \ub54c (\uc989, \ubaa8\ub4c8\uc744 \ucf54\ub529\ud560 \ub54c) \ud55c\uae00 \ucc98\ub9ac\n", " - \ud30c\uc77c\uc758 \ub9e8 \uc704\uc5d0 \ub2e4\uc74c \ucf54\ub4dc\ub97c \ub123\uc5b4 \uc900\ub2e4.\n", " - \\# -\\*- coding:utf-8 -*-" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## 02 \uc774\ub984 \uacf5\uac04\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2-1 \uc774\ub984 \uacf5\uac04\uc774\ub780?\n", "- \uc774\ub984(Name)\n", " - \ubcc0\uc218 \uc774\ub984\n", " - \ud568\uc218 \uc774\ub984\n", " - \ud074\ub798\uc2a4 \uc774\ub984\n", " - \uac1d\uccb4 \uc774\ub984\n", " - \ubaa8\ub4c8 \uc774\ub984\n", "- \uc774\ub984 \uacf5\uac04 (Name Space or Scope)\n", " - \ud30c\uc774\uc36c\uc758 \uac01\uc885 \uc774\ub984\ub4e4\uc774 \uc800\uc7a5\ub418\ub294 \uacf5\uac04\n", "- \ubaa8\ub4c8\uc740 \ud558\ub098\uc758 \ub3c5\ub9bd\ub41c \uc774\ub984 \uacf5\uac04\uc744 \ud655\ubcf4\ud558\uba74\uc11c \uc815\uc758\ub41c\ub2e4." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2-2 \uc790\uaca9 \uc774\ub984, \ubb34\uc790\uaca9 \uc774\ub984\n", "- \uc790\uaca9 \uc774\ub984 (Qualified Name)\n", " - X.Y.Z \uacfc \uac19\uc774 \ucd5c\uc885\uc801\uc778 \uc774\ub984 Z \uc55e\uc5d0 \uc774\ub984 \uacf5\uac04\uc744 \uba85\uc2dc\ud574\uc8fc\ub294 \uc774\ub984\n", "- \ubb34\uc790\uaca9 \uc774\ub984 (Unqualified Name)\n", " - Z\uc640 \uac19\uc774 \uc774\ub984 \uacf5\uac04 \uc5c6\uc774 \uc0ac\uc6a9\ub418\ub294 \uc774\ub984\n", "- \uc790\uaca9 \uc774\ub984\uc758 \ucd5c\ucd08 \uc774\ub984 \uacf5\uac04(\uc704 \uc608\uc5d0\uc11c X) \uc774\ub098 \ubb34\uc790\uaca9 \uc774\ub984(\uc704 \uc608\uc5d0\uc11c Z) \ub4f1\uc744 \ucc3e\ub294 \uc21c\uc11c \uaddc\uce59\n", " - LGB (Local -> Global -> Builtin)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2-3 \uc804\uc5ed\uacf5\uac04\uacfc \uc9c0\uc5ed\uacf5\uac04 \uc54c\uc544\ub0b4\uae30-globals(), locals()\n", "- globals(): \uc804\uc5ed \uc2ec\ubcfc \ud14c\uc774\ube14\uc744 \ud3ec\ud568\ud55c \uc0ac\uc804 \ubc18\ud658 \n", "- locals(): \uc9c0\uc5ed \uc2ec\ubcfc \ud14c\uc774\ube14\uc744 \ud3ec\ud568\ud55c \uc0ac\uc804 \ubc18\ud658\n", "- \ucd5c\uc0c1\uc704 \ubaa8\ub4c8 \uc218\uc900\uc5d0\uc11c \ub450 \ud568\uc218\ub294 \ub3d9\uc77c\ud55c \uacb0\uacfc\ub97c \ubc18\ud658\ud55c\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = 10\n", "print globals()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 90 }, { "cell_type": "code", "collapsed": false, "input": [ "print locals() " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 91 }, { "cell_type": "code", "collapsed": false, "input": [ "# module01.py\n", "# -*- coding:utf-8 -*-\n", "a = 1\n", "b = 2\n", "\n", "def f():\n", " localx = 10\n", " localy = 20\n", " print '\ud568\uc218 \ub0b4\uc5d0\uc11c \uc804\uc5ed \ubcc0\uc218:', globals()\n", " print \n", " print '\ud568\uc218 \ub0b4\uc5d0\uc11c \uc9c0\uc5ed \ubcc0\uc218:', locals()\n", " \n", "f()\n", "print\n", "print '\ubaa8\ub4c8 \uc218\uc900\uc5d0\uc11c\uc758 \uc804\uc5ed \ubcc0\uc218:', globals()\n", "print\n", "print '\ubaa8\ub4c8 \uc218\uc900\uc5d0\uc11c\uc758 \uc9c0\uc5ed \ubcc0\uc218:', locals()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n" ] } ], "prompt_number": 93 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2-4 \uc804\uc5ed\uacf5\uac04 \ubcc0\uacbd\ud558\uae30-globals()" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#module02.py\n", "a = 1\n", "b = 2\n", "\n", "gns = globals()\n", "print gns \n", "print\n", "gns['c'] = 3 \n", "print gns" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 95 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2-5 \ubaa8\ub4c8\uc774 \uc9c0\ub2cc \uc774\ub984\ub4e4 \uc54c\uc544\ubcf4\uae30\n", "- dir(\ubaa8\ub4c8): \ubaa8\ub4c8\uc774 \uc9c0\ub2c8\uace0 \uc788\ub294 \ubaa8\ub4e0 \uc774\ub984\ub4e4\uc744 \ub9ac\uc2a4\ud2b8\ub85c \ubc18\ud658 " ] }, { "cell_type": "code", "collapsed": false, "input": [ "import string\n", "print dir(string)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "['Formatter', 'Template', '_TemplateMetaclass', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_float', '_idmap', '_idmapL', '_int', '_long', '_multimap', '_re', 'ascii_letters', 'ascii_lowercase', 'ascii_uppercase', 'atof', 'atof_error', 'atoi', 'atoi_error', 'atol', 'atol_error', 'capitalize', 'capwords', 'center', 'count', 'digits', 'expandtabs', 'find', 'hexdigits', 'index', 'index_error', 'join', 'joinfields', 'letters', 'ljust', 'lower', 'lowercase', 'lstrip', 'maketrans', 'octdigits', 'printable', 'punctuation', 'replace', 'rfind', 'rindex', 'rjust', 'rsplit', 'rstrip', 'split', 'splitfields', 'strip', 'swapcase', 'translate', 'upper', 'uppercase', 'whitespace', 'zfill']\n" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "print string.__dict__ # \ucd9c\ub825\uc740 \ub108\ubb34 \uae38\uc5b4\uc11c \uc0dd\ub7b5\n", "print string.__dict__.keys() # \uc774\ub984 \ud0a4:\uc18d\uc131 \uc0ac\uc804\uc5d0\uc11c \ud0a4\ub9cc \ubf51\uc544\ub0bc \uc218 \uc788\ub2e4. \uc774\uac83\uc740 dir(string)\uacfc \ub3d9\uc77c" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "['ascii_lowercase', 'upper', '_re', 'letters', 'atol_error', 'lstrip', 'uppercase', 'ascii_letters', 'find', 'atof', 'replace', 'capwords', 'index_error', 'expandtabs', 'Template', 'strip', 'ascii_uppercase', 'octdigits', 'index', 'ljust', 'whitespace', '_int', 'rindex', '_float', 'punctuation', '__package__', 'printable', 'splitfields', 'split', 'rstrip', 'translate', '__doc__', '_multimap', 'count', 'joinfields', 'rjust', '__builtins__', '__file__', 'lower', 'swapcase', 'atof_error', 'atoi', 'hexdigits', 'Formatter', 'atol', '__name__', 'rsplit', '_idmapL', 'digits', 'lowercase', 'join', 'center', '_long', 'rfind', 'atoi_error', 'maketrans', 'capitalize', '_TemplateMetaclass', 'zfill', '_idmap']\n" ] } ], "prompt_number": 24 }, { "cell_type": "code", "collapsed": false, "input": [ "import string\n", "for name in dir(string):\n", " if name not in string.__dict__.keys():\n", " print name" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2-6 \uc774\ub984 \uacf5\uac04\uc744 \uc81c\uacf5\ud558\ub294 \ub2e4\ub978 \uc608\ub4e4\n", "- \ub3c5\ub9bd\ub41c \uc774\ub984 \uacf5\uac04(\uc2a4\ucf54\ud504)\uc744 \uc81c\uacf5\ud558\ub294 \uac83\ub4e4\n", " - \ubaa8\ub4c8\n", " - \ud074\ub798\uc2a4\n", " - \uac1d\uccb4\n", " - \ud568\uc218" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- string \ubaa8\ub4c8 \uc774\ub984 \uacf5\uac04\uc5d0 \ubcc0\uc218 a\ub97c \uc0dd\uc131\ud55c\ub2e4.\n", " - \ud45c\uc900 \ubaa8\ub4c8\uc5d0 \uc0ac\uc6a9\uc790\uac00 \uc815\uc758\ud558\ub294 \uc774\ub984\uc744 \uc0dd\uc131\ud558\ub294 \uac83\uc740 \ube44\ucd94\ucc9c\n", " - \ub2e8\uce58 \ubaa8\ub4c8 \uc790\uccb4\uac00 \ub3c5\ub9bd\uc801\uc778 \uc774\ub984 \uacf5\uac04\uc744 \uc81c\uacf5\ud55c\ub2e4\ub294 \uac83\uc744 \uc54c\ub824\uc90c" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import string\n", "string.a = 1\n", "print string.a" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \ud074\ub798\uc2a4\ub3c4 \ub3c5\ub9bd\uc801\uc778 \uc774\ub984 \uacf5\uac04" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class C: # \ud074\ub798\uc2a4\ub3c4 \ub3c5\ub9bd\uc801\uc778 \uc774\ub984 \uacf5\uac04\n", " a = 2 # \ud074\ub798\uc2a4 \uc774\ub984 \uacf5\uac04 \ub0b4\uc5d0 \ubcc0\uc218 \uc120\uc5b8\n", " pass # \ud074\ub798\uc2a4 \uc815\uc758\n", "\n", "c = C() # \ud074\ub798\uc2a4 \uc778\uc2a4\ud134\uc2a4 \uac1d\uccb4 \uc0dd\uc131\n", "c.a = 1 # \ud074\ub798\uc2a4\uc5d0\uc11c \uc0dd\uc131\ub41c \uc778\uc2a4\ud134\uc2a4 \uac1d\uccb4\ub3c4 \ubcc4\ub3c4\uc758 \uc774\ub984 \uacf5\uac04\n", "print c.a\n", "print c.__class__.a\n", "print C.a" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1\n", "2\n", "2\n" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \ud568\uc218\ub3c4 \ub3c5\ub9bd\uc801\uc778 \uc774\ub984 \uacf5\uac04\n", " - \ub2e4\ub9cc \ud568\uc218 \ub0b4\uc5d0\uc11c \uc120\uc5b8\ub41c \ub85c\uceec \ubcc0\uc218\ub294 \ud568\uc218 \uc678\ubd80\uc5d0\uc11c \uc811\uadfc\ud560 \uc218 \uc5c6\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "x = 10 # \ud604\uc7ac \ubaa8\ub4c8 \ub0b4\ubd80\uc5d0 \uc815\uc758\ub418\ub294 \uc774\ub984\n", "def f():\n", " a = 1\n", " b = 2 # \ud604\uc7ac \ubaa8\ub4c8\uc5d0 \uc815\uc758\ub418\ub294 \ud568\uc218 f \ub0b4\uc5d0 \uc774\ub984 a,b\ub97c \uc815\uc758\ud558\uace0\uc788\ub2e4. \ud568\uc218\ub3c4 \ub3c5\ub9bd\uc801\uc778 \uc774\ub984 \uacf5\uac04\n", "f.c = 1\n", "print f.c\n", "print\n", "print f.a" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1\n", "\n" ] }, { "ename": "AttributeError", "evalue": "'function' object has no attribute 'a'", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mprint\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mc\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;32mprint\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0;32mprint\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0ma\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m: 'function' object has no attribute 'a'" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## 03 \ubaa8\ub4c8 \uac80\uc0c9 \uacbd\ub85c\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3-1 PYTHONPATH \ud658\uacbd \ubcc0\uc218 \uc124\uc815\ud558\uae30\n", "- \ud30c\uc774\uc36c\uc774 \ubaa8\ub4c8\uc744 \ucc3e\ub294 \uc21c\uc11c\n", " - 1) \uc774\ubbf8 \uba54\ubaa8\ub9ac\uc5d0 \ub85c\ub529\ub418\uc5b4\uc9c4 \uac83\n", " - 2) \ud604\uc7ac \ub514\ub809\ud1a0\ub9ac (ipython\uc5d0\uc11c pwd \uba85\ub839\uc73c\ub85c \ud655\uc778 \uac00\ub2a5)\n", " - 3) PYTHONPATH \ud658\uacbd \ubcc0\uc218\uc5d0 \uae30\uc220\ub41c \ub514\ub809\ud1a0\ub9ac \ubaa9\ub85d\uc744 \ucc28\ub840\ub85c \ud0d0\uc0c9\n", " - 4) \ud45c\uc900 \ub77c\uc774\ube0c\ub7ec\ub9ac \ub514\ub809\ud1a0\ub9ac\ub4e4\n", " - sys \ubaa8\ub4c8 \uc784\ud3ec\ud2b8 \ud6c4 sys.path \ub85c \ud655\uc778 \uac00\ub2a5\n", " - sys.path.append(), sys.path.remove()\ub85c \ucd94\uac00, \uc0ad\uc81c \uac00\ub2a5\n", "- PYTHONPATH \ud658\uacbd \ubcc0\uc218 \uc124\uc815 \ubc29\ubc95\n", " - \uc708\ub3c4\uc6b0\uc988\n", " - \uc81c\uc5b4\ud310\\\uc2dc\uc2a4\ud15c \ubc0f \ubcf4\uc548\\\uc2dc\uc2a4\ud15c\\\uace0\uae09 \uc2dc\uc2a4\ud15c \uc124\uc815\\\ud658\uacbd \ubcc0\uc218\n", " - \uc0c8\ub85c \ub9cc\ub4e4\uae30: \ubcc0\uc218 \uc774\ub984 - PYTHONPATH, \ubcc0\uc218 \uac12 - C:\\Users\\yhhan\\mypythonlib\n", " - python \uc0c8\ub85c \uc2dc\uc791\ud558\uae30 (cmd\ucc3d \uc0c8\ub85c \uc2dc\uc791\ud55c \ud6c4)\n", " - MAC\uc774\ub098 \ub9ac\ub205\uc2a4\n", " - ~/.bash_profile \ud639\uc740 ~/.profile \ud30c\uc77c\uc5d0 \ub2e4\uc74c \ub77c\uc778 \ucd94\uac00\n", " - export PYTHONPATH=/Users/yhhan/mypythonlib\n", " - \ud130\ubbf8\ub110 \ucc3d\uc5d0\uc11c \ub2e4\uc74c \uba85\ub839\uc5b4 \uc218\ud589 \n", " - source ~/.bash_profile\n", " - \uc774\ud074\ub9bd\uc2a4\uc5d0\uc11c PYTHONPATH \uc124\uc815" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![inheritance](images/pythonpath_eclipse.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \ucf54\ub4dc \ub0b4\uc5d0\uc11c \ubaa8\ub4c8 \uac80\uc0c9 \uacbd\ub85c \ud655\uc778\ud558\uae30" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import sys\n", "print sys.path" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "['', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python27.zip', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/plat-darwin', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/plat-mac', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/plat-mac/lib-scriptpackages', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/lib-tk', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/lib-old', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/lib-dynload', '/Users/yhhan/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages', '/Users/yhhan/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/PIL', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages', '/Users/yhhan/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/IPython/extensions', '~/mypythonlib']\n" ] } ], "prompt_number": 14 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 3-2 \ubaa8\ub4c8\uc758 \uac80\uc0c9 \uacbd\ub85c \ub3d9\uc801\uc73c\ub85c \ubc14\uafb8\uae30" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import sys\n", "\n", "sys.path.append('~/mypythonlib')\n", "print sys.path" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "['', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python27.zip', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/plat-darwin', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/plat-mac', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/plat-mac/lib-scriptpackages', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/lib-tk', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/lib-old', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/lib-dynload', '/Users/yhhan/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages', '/Users/yhhan/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/PIL', '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/site-packages', '/Users/yhhan/Library/Enthought/Canopy_64bit/User/lib/python2.7/site-packages/IPython/extensions', '~/mypythonlib']\n" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## 04 import\uc5d0 \ub300\ud574\uc11c \uc880 \ub354 \uc790\uc138\ud788\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4-1 \ubaa8\ub4c8 import \ud558\uae30\n", "#### 1) import \ubaa8\ub4c8\uba85\n", "- \uac00\uc7a5 \uae30\ubcf8\uc801\uc778 \ud615\ud0dc\n", " - \uc774\ub984 \uacf5\uac04 mymath\uac00 \uadf8\ub300\ub85c \uc720\uc9c0\ub418\ubbc0\ub85c mymath.area() \ud615\ud0dc\ub85c \uc790\uaca9 \uc774\ub984 \uc0ac\uc6a9" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import mymath\n", "print mymath.area(5)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "78.5\n" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2) from \ubaa8\ub4c8\uba85 import \uc774\ub984\ub4e4\n", "- \ud574\ub2f9 \ubaa8\ub4c8\uc5d0 \uc874\uc7ac\ud558\ub294 \uc9c0\uc815 \uc774\ub984\ub4e4\uc744 \ud604\uc7ac \uc774\ub984 \uacf5\uac04\uc73c\ub85c \ubd88\ub7ec\ub4e4\uc778\ub2e4.\n", "- \ubd88\ub7ec\ub4e4\uc778 \uac01 \uc774\ub984\ub4e4\uc740 \ubb34\uc790\uaca9 \uc774\ub984\uc73c\ub85c\uc11c \uc9c1\uc811 \ucc38\uc870 \uac00\ub2a5\ud558\ub2e4.\n", "- import \ud558\ub294 \uc774\ub984\ub4e4\uc774 \uae30\uc874\uc5d0 \ubbf8\ub9ac \uc874\uc7ac\ud558\uace0 \uc788\uc5c8\ub2e4\uba74 \uadf8 \uc774\ub984\ub4e4\uc5d0 \uc758\ud574 \ucc38\uc870\ub418\ub358 \uae30\uc874 \uac1d\uccb4\ub4e4\uc740 \uc0c1\uc2e4\ub41c\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from mymath import area, mypi\n", "print area(5)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "78.5\n" ] } ], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3) from \ubaa8\ub4c8\uba85 import *\n", "- \ud574\ub2f9 \ubaa8\ub4c8\uc5d0 \uc874\uc7ac\ud558\ub294 '\\_\\_'\ub85c \uc2dc\uc791\ub418\ub294 \uc774\ub984\ub4e4\uc744 \uc81c\uc678\ud55c \ubaa8\ub4e0 \uc774\ub984\ub4e4\uc744 \ud604\uc7ac \uc774\ub984 \uacf5\uac04\uc73c\ub85c \ubd88\ub7ec\ub4e4\uc778\ub2e4. " ] }, { "cell_type": "code", "collapsed": false, "input": [ "from mymath import *\n", "print area(5)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "78.5\n" ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4) import \ubaa8\ub4c8\uba85 as \uc0c8\ub85c\uc6b4 \ubaa8\ub4c8 \uc774\ub984\n", "- \ud574\ub2f9 \ubaa8\ub4c8\uc744 \uc0c8\ub85c\uc6b4 \ub2e4\ub978 \uc774\ub984\uc73c\ub85c \uc0ac\uc6a9\ud558\uace0\uc790 \ud560 \ub54c \uc0ac\uc6a9\n", "- \uae30\uc874 \ubaa8\ub4c8 \uc774\ub984\uc774 \ub108\ubb34 \uae38\uac70\ub098 \ud604\uc7ac \uc0ac\uc6a9\uc911\uc778 \ub2e4\ub984 \uc774\ub984\ub4e4\uacfc \ucda9\ub3cc\uc774 \uc77c\uc5b4\ub0a0 \ub54c \uc720\uc6a9" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import string as chstr\n", "print chstr\n", "print\n", "print chstr.punctuation" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~\n" ] } ], "prompt_number": 4 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 5) from \ubaa8\ub4c8\uba85 import \uc774\ub984 as \uc0c8\ub85c\uc6b4 \uc774\ub984[, \uc774\ub984 as \uc0c8\ub85c\uc6b4 \uc774\ub984]\n", "- \ud574\ub2f9 \ubaa8\ub4c8 \ub0b4\uc5d0 \uc815\uc758\ub41c \uc774\ub984\uc744 \ub2e4\ub978 \uc0c8\ub85c\uc6b4 \uc774\ub984\uc73c\ub85c \uc0ac\uc6a9\ud558\uace0\uc790 \ud560 \ub54c \uc0ac\uc6a9" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from string import replace as substitute\n", "print substitute\n", "print substitute('ham chicken spam', 'chicken', 'egg')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "ham egg spam\n" ] } ], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ "from string import replace as substitute, upper as up\n", "print up\n", "print up('abc')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "ABC\n" ] } ], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- import \ubb38\uc740 \ubcf4\ud1b5\uc758 \ubb38(statement)\uac00 \uae30\uc785\ub420 \uc218 \uc788\ub294 \uacf3\uc774\uba74 \uc5b4\ub514\uc5d0\uc11c\ub098 \uc0ac\uc6a9 \uac00\ub2a5\n", " - \uc608\ub97c \ub4e4\uba74 \ud568\uc218 \uc815\uc758 def \ubb38 \uc548\uc774\ub098 if \ubb38 \uc548\uc5d0\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc788\uc74c" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def str_test(s):\n", " import string\n", " t = string.split(s)\n", " return t" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 40 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \ubaa8\ub4c8 \ub0b4\uc5d0\uc11c import \ud558\ub294 \uc774\ub984\ub4e4\uc744 \ud29c\ud50c \ud0c0\uc785\uc73c\ub85c \ubb36\uc5b4\ub3c4 \ub41c\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from Tkinter import (Tk, Frame, Button, Entry, Canvas, Text, LEFT, DISABLED, NORMAL, RIDGE, END)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4-2 import\ub294 \ucf54\ub4dc\ub97c \uc218\ud589\ud55c\ub2e4\n", "- import\ub294 \ucf54\ub4dc\ub97c \uac00\uc838\uc624\uae30\ub9cc \ud558\ub294 \uac83\uc774 \uc544\ub2c8\ub77c \uac00\uc838\uc628 \ucf54\ub4dc\ub97c \uc218\ud589\ud55c\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "mypi = 3.14\n", "\n", "def add(a, b):\n", " return a + b\n", "\n", "def area(r):\n", " return mypi * r * r\n", "\n", "print area(4.0)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "50.24\n" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "import mymath02" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "50.24\n" ] } ], "prompt_number": 21 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4-3 \ucef4\ud30c\uc77c\uacfc \uc801\uc7ac\uc2dc\uac04\n", "- import mymath\ub97c \uc218\ud589\ud560 \ub54c \ubc1c\uc0dd\ud558\ub294 \uc77c\n", " - 1) \uc6b0\uc120 mymath.pyc\ub97c \ucc3e\ub294\ub2e4.\n", " - 2) mymath.pyc\uac00 \uc5c6\ub2e4\uba74 mymath.py\ub97c \ucc3e\uc544\uc11c mymath.pyc\ub97c \uc0dd\uc131\ud55c\ub2e4.\n", " - 3) \uc0dd\uc131\ub41c mymath.pyc\ub97c \uba54\ubaa8\ub9ac\ub85c \uc77d\uc5b4\ub4e4\uc5ec \uc218\ud589\ud55c\ub2e4.\n", "- .pyc \ud30c\uc77c\n", " - \ubc14\uc774\ud2b8 \ucf54\ub4dc \ud30c\uc77c\n", " - \uae30\uacc4\ub098 \ud50c\ub7ab\ud3fc(OS)\uc5d0 \uc758\uc874\ud558\uc9c0 \uc54a\ub3c4\ub85d \ub9cc\ub4e4\uc5b4\uc9c4 \uc77c\uc885\uc758 \ubaa9\uc801 \ucf54\ub4dc (Object Code)\n", " - \ud30c\uc774\uc36c\uc740 \ucef4\ud30c\uc77c \uc5b8\uc5b4\uc774\uba74\uc11c \ub3d9\uc2dc\uc5d0 \uc778\ud130\ud504\ub9ac\ud130 \uc5b8\uc5b4\uc758 \uc218\ud589 \ubc29\uc2dd\uc744 \ucde8\ud558\uace0 \uc788\ub2e4.\n", "- \uc0c8\ub85c\uc6b4 .pyc \uc0dd\uc131\uc5d0 \ub300\ud55c \ud310\ub2e8\n", " - .py \uc218\uc815 \uc2dc\uac04\uc774 .pyc \uc218\uc815 \uc2dc\uac04\ubcf4\ub2e4 \ub354 \ucd5c\uadfc\uc77c \ub54c\n", "- .py\uac00 \uc5c6\uc774\ub3c4 .pyc \ud30c\uc77c\ub9cc \uc788\uc5b4\ub3c4 import \uac00\ub2a5\n", " - \ucf54\ub4dc\ub97c \uc228\uae30\ub294 \uac04\ub2e8\ud55c \uae30\ubc95\uc73c\ub85c \ud65c\uc6a9 \uac00\ub2a5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4-4 \ubb38\uc790\uc5f4\ub85c \ud45c\ud604\ub41c \ubaa8\ub4c8 \uac00\uc838\uc624\uae30\n", "- \ud2b9\uc218 \ub0b4\uc7a5 \ud568\uc218 \\_\\_import__ \uc0ac\uc6a9" ] }, { "cell_type": "code", "collapsed": false, "input": [ "modulename = 're'\n", "re = __import__(modulename)\n", "print re" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4-5 \ubaa8\ub4c8 \uc774\ub984\uacfc \uc774\ubbf8 \uc0ac\uc6a9\ud558\uace0 \uc788\ub358 \uc774\ub984\uc774 \uac19\ub2e4\uba74?\n", "- \uc774\uc804\uc758 \uc774\ub984\uc774 \ucc38\uc870\ud558\ub358 \uac1d\uccb4\ub294 \uc0c1\uc2e4\ub428" ] }, { "cell_type": "code", "collapsed": false, "input": [ "string = \"My first string\"\n", "import string\n", "print string" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "import string\n", "string = \"My first string\" #\uc5ec\uae30\uc11c string\uc774\ub780 \uc774\ub984\uc740 \ubb38\uc790\uc5f4\uc744 \ucc38\uc870\ud558\uac8c \ub41c\ub2e4.\n", "print string" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "My first string\n" ] } ], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \ud55c\ubc88 import \ub418\uc5c8\ub358 \ubaa8\ub4c8\uc740 \uba54\ubaa8\ub9ac\uc5d0 \uc801\uc7ac\ub418\uc5b4\uc9c0\uace0, \ub098\uc911\uc5d0 \ub2e4\uc2dc \ub3d9\uc77c\ud55c \ubaa8\ub4c8\uc744 import\ud558\uba74 \uba54\ubaa8\ub9ac\uc5d0 \uc801\uc7ac\ub418\uc5b4 \uc788\ub358 \ubaa8\ub4c8\uc774 \uc989\uc2dc \uc0ac\uc6a9\ub41c\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import string\n", "string.a = 1\n", "string = \"My first string\"\n", "print string\n", "\n", "import string\n", "print string.a # \uc5ec\uae30\uc11c string \ubaa8\ub4c8\uc774 \uae30\uc874\uc5d0 \uc774\ubbf8 \ub4f1\ub85d\ub418\uc5c8\ub358 \uac83\uc784\uc744 \uc54c \uc218 \uc788\ub2e4." ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "My first string\n", "1\n" ] } ], "prompt_number": 28 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4-6 \ubaa8\ub4c8\uc740 \uacf5\uc720\ub41c\ub2e4\n", "- \uc11c\ub85c \ub2e4\ub978 \ubaa8\ub4c8\uc5d0\uc11c \ub3d9\uc77c\ud55c \ubaa8\ub4c8\uc740 \uacf5\uc720\ub41c\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "#file : teststring1.py\n", "import string # string \ubaa8\ub4c8\uc744 import \ud568\n", "\n", "print 'test string1'\n", "string.a = 1 # import\ud55c string \ubaa8\ub4c8\uc5d0 a \ubcc0\uc218 \ub4f1\ub85d\n", "\n", "print \"---\"\n", "import teststring2 # \uc11c\ub85c \ub2e4\ub978 \ubaa8\ub4c8\uc778 teststring2\ub97c import \ud568\n", "print \"---\"\n", "\n", "print 'test string1 done'" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "test string1\n", "---\n", "test string2\n", "1\n", "test string2 done\n", "---\n", "test string1 done\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "#file : teststring2.py\n", "import string # \ub3d9\uc77c\ud55c string \ubaa8\ub4c8\uc744 import \ud568\n", "\n", "print 'test string2'\n", "print string.a # \ub2e4\ub978 \ubaa8\ub4c8\uc5d0\uc11c \ub4f1\ub85d\ud55c a \ubcc0\uc218 \uc0ac\uc6a9 \uac00\ub2a5\n", "print 'test string2 done'" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "test string2\n", "1\n", "test string2 done\n" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4-7 \ubaa8\ub4c8\uc758 \uc7ac\uc801\uc7ac(reload)\n", "- \uc774\ubbf8 \uba54\ubaa8\ub9ac\uc5d0 \uc801\uc7ac\ub418\uc5b4 \uc788\ub294 \ubaa8\ub4c8\uc740 \ub2e4\uc2dc import \ud558\ub354\ub77c\ub3c4 \uae30\uc874\uc5d0 \uc801\uc7ac\ub418\uc5b4 \uc788\ub294 \ubaa8\ub4c8\uc774 \uadf8\ub300\ub85c \ub2e4\uc2dc \uc774\uc6a9\ub41c\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import mymath\n", "mymath.mypi = 6.2 # \uac12 \uc218\uc815(\uc6d0\ub798 \ubaa8\ub4c8 \ud30c\uc77c\uc5d0 \uc815\uc758\ub41c \uac12\uc740 3.14)\n", "\n", "import mymath # \ub2e4\uc2dc import\n", "print mymath.mypi # 3.14\uac00 \uc544\ub2c8\ub77c 6.2 -> \uc989 \uc774\ubbf8 \uc801\uc7ac\ub418\uc5b4 \uc788\ub294 \ubaa8\ub4c8 \uadf8\ub0e5 \uc774\uc6a9" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "6.2\n" ] } ], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- reload(\ubaa8\ub4c8)\n", " - \uba54\ubaa8\ub9ac\uc5d0 \ub4f1\ub85d\ub41c \uac83\uacfc \uad00\uacc4\uc5c6\uc774 \ud574\ub2f9 \ubaa8\ub4c8\uc758 \ud30c\uc77c\uc5d0\uc11c \uc0c8\ub86d\uac8c \ub2e4\uc2dc \uba54\ubaa8\ub9ac\uc5d0 \uc7ac\uc801\uc7ac \uc2dc\ud0a4\ub294 \ub0b4\uc7a5 \ud568\uc218" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print mymath.mypi\n", "reload(mymath)\n", "print mymath.mypi" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "6.2\n", "3.14\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## 05 \ubaa8\ub4c8\uc758 \uc2e4\ud589\n", "***\n", "- \\_\\_name\\_\\_\n", " - \ud604\uc7ac\uc758 \ubaa8\ub4c8\uc774 \ucd5c\uc0c1\uc704 \ubaa8\ub4c8\ub85c\uc11c \uc218\ud589\ub418\ub294\uc9c0, \uc544\ub2c8\uba74 \ub2e4\ub978 \ubaa8\ub4c8\uc5d0 \uc758\ud574 import \ub418\uc5b4 \uc218\ud589\ub418\ub294\uc9c0\ub97c \uad6c\ubcc4\ud558\uae30 \uc704\ud574 \uc8fc\ub85c \ud65c\uc6a9" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- prname.py\ub97c \uc9c1\uc811 \uc218\ud589\ud560 \ub54c\uc758 \ucd9c\ub825 \ub0b4\uc6a9: \\_\\_main\\_\\_\n", " - \\>\\>\\> ipython prname.py\n", " - \\_\\_main\\_\\_\n", " - prname.py\uac00 \ucd5c\uc0c1\uc704 \ubaa8\ub4c8\ub85c\uc11c \uc218\ud589\ub428\uc744 \uc758\ubbf8" ] }, { "cell_type": "code", "collapsed": false, "input": [ "#FILE : prname.py\n", "print __name__" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "__main__\n" ] } ], "prompt_number": 38 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- prname.py\uac00 \ubaa8\ub4c8\ub85c\uc11c \ub2e4\ub978 \uc774\ub984 \uacf5\uac04\uc73c\ub85c import \ub418\uc5b4\uc9c8 \ub54c\uc758 \ucd9c\ub825 \ub0b4\uc6a9: prname" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import prname\n", "print prname.__name__" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "prname\n", "prname\n" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "import string\n", "print string.__name__\n", "\n", "import re\n", "print re.__name__\n", "\n", "import mimetools\n", "print mimetools.__name__\n", "\n", "import os\n", "print os.__name__" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "string\n", "re\n", "mimetools\n", "os\n" ] } ], "prompt_number": 63 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \uc544\ub798 \ucf54\ub4dc\ub294 \ucd5c\uc0c1\uc704 \ubaa8\ub4c8\ub85c\uc11c \uc218\ud589\ub420 \ub54c\uc5d0\ub9cc test() \ud568\uc218 \ud638\ucd9c\uc774 \uc77c\uc5b4\ub09c\ub2e4. \n", "- \ubcf4\ud1b5 \ud30c\uc774\uc36c \ubaa8\ub4c8\uc744 \uac1c\ubc1c\ud560 \ub54c\uc5d0\ub294 \ub9c8\uc9c0\ub9c9 \ubd80\ubd84\uc5d0 if \\_\\_name\\_\\_ == \"\\_\\_main\\_\\_\": \uacfc \uac19\uc740 \ucf54\ub4dc\ub97c \ucd94\uac00\ud558\uc5ec \ud14c\uc2a4\ud2b8 \ucf54\ub4dc\ub97c \uc0bd\uc785\ud55c\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "#file: name_attr_test.py\n", "def test():\n", " print \"Python is becoming popular.\"\n", " \n", "if __name__ == \"__main__\":\n", " test()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Python is becoming popular.\n" ] } ], "prompt_number": 65 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \uc815\uc758\ub41c \ubaa8\ub4c8\uc774 \ub2e4\ub978 \ubaa8\ub4c8\ub85c import\ub418\uc5b4\uc9c8 \ub54c\uc5d0\ub294 \\_\\_name\\_\\_\uc740 \ubaa8\ub4c8 \uc774\ub984 \uc790\uccb4\uc774\ubbc0\ub85c \uc704 \ucf54\ub4dc\uc5d0\uc11c if \ubb38\uc774 \uc218\ud589\ub418\uc9c0 \uc54a\ub294\ub2e4. \n", " - \uc989, test() \ud568\uc218 \ud638\ucd9c\uc774 \uace7\ubc14\ub85c \ub418\uc9c0 \uc54a\ub294\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import name_attr_test" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## 06 \ubb38\uc790\uc5f4 \uc774\ub984\uc73c\ub85c \uc18d\uc131 \uac12 \ucc38\uc870\ud558\uae30\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6-1 getattr(), setattr(), hasattr(), delattr()\n", "- getattr(object, 'name')\n", " - \ubb38\uc790\uc5f4\ub85c \uc8fc\uc5b4\uc9c4 name \uc18d\uc131 \uac12\uc744 object \uac1d\uccb4\uc5d0\uc11c \ucc3e\uc544 \ub9ac\ud134\ud55c\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import calendar\n", "\n", "print getattr(calendar, 'prmonth') # \ubb38\uc790\uc5f4 \uc774\ub984\uc744 \uc774\uc6a9\ud55c \ubaa8\ub4c8 \ub0b4 \uc18d\uc131(\ubcc0\uc218\ub098 \ud568\uc218) \ucc38\uc870\n", "print calendar.prmonth # \uc9c1\uc811 calendar.prmonth\ub97c \ucc38\uc870\ud558\ub294 \uac83\uacfc \uac19\ub2e4" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ ">\n", ">\n" ] } ], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "calendar.prmonth(2014, 10)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " October 2014\n", "Mo Tu We Th Fr Sa Su\n", " 1 2 3 4 5\n", " 6 7 8 9 10 11 12\n", "13 14 15 16 17 18 19\n", "20 21 22 23 24 25 26\n", "27 28 29 30 31\n" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "getattr(calendar, 'prmonth')(2014, 10) #\uac19\uc740 \ucd9c\ub825\uacb0\uacfc" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " October 2014\n", "Mo Tu We Th Fr Sa Su\n", " 1 2 3 4 5\n", " 6 7 8 9 10 11 12\n", "13 14 15 16 17 18 19\n", "20 21 22 23 24 25 26\n", "27 28 29 30 31\n" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "f = getattr(calendar, 'prmonth')\n", "f(2014, 10) #\uac19\uc740 \ucd9c\ub825\uacb0\uacfc" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " October 2014\n", "Mo Tu We Th Fr Sa Su\n", " 1 2 3 4 5\n", " 6 7 8 9 10 11 12\n", "13 14 15 16 17 18 19\n", "20 21 22 23 24 25 26\n", "27 28 29 30 31\n" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- setattr(object, 'name', value)\n", " - object\uc5d0 name \uc18d\uc131\uc73c\ub85c value\ub97c \uc124\uc815\ud55c\ub2e4.\n", "- hasattr(object, 'name')\n", " - object\uc5d0 name \uc18d\uc131\uc774 \uc874\uc7ac\ud558\uba74 True\ub97c \ubc18\ud658\ud558\uace0, \uadf8\ub807\uc9c0 \uc54a\uc73c\uba74 False\uac00 \ubc18\ud658\ub41c\ub2e4.\n", "- delattr(object, 'name')\n", " - object\uc5d0 \uc874\uc7ac\ud558\ub294 name \uc18d\uc131\uc744 \uc0ad\uc81c\ud55c\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import calendar\n", "setattr(calendar, 'spam', 10)\n", "print calendar.spam\n", "\n", "print hasattr(calendar, 'spam')\n", "\n", "print delattr(calendar, 'spam')\n", "print calendar.spam" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "10\n", "True\n", "None\n" ] }, { "ename": "AttributeError", "evalue": "'module' object has no attribute 'spam'", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;32mprint\u001b[0m \u001b[0mdelattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcalendar\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'spam'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0;32mprint\u001b[0m \u001b[0mcalendar\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mspam\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m: 'module' object has no attribute 'spam'" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 6-2 _dict_-\ubaa8\ub4c8\uc758 \uc774\ub984 \uacf5\uac04 \uc5bb\uae30\n", "- dir(\ubaa8\ub4c8) \ub0b4\uc7a5 \ud568\uc218\n", " - \ubaa8\ub4c8\uc758 \uc18d\uc131 \uc774\ub984\ub9cc \ub9ac\uc2a4\ud2b8\ub85c \ubc18\ud658\n", "- \ubaa8\ub4c8\uc774 \uc9c0\ub2cc \\_\\_dict\\_\\_ \ud2b9\uc218 \uc18d\uc131\n", " - \ubaa8\ub4c8\uc758 \uc18d\uc131 \uc774\ub984\uacfc \uadf8 \uac12\uc744 \uc0ac\uc804 \ud615\ud0dc\ub85c \ubc18\ud658" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print dir(calendar)\n", "print\n", "print calendar.__dict__" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "['Calendar', 'EPOCH', 'FRIDAY', 'February', 'HTMLCalendar', 'IllegalMonthError', 'IllegalWeekdayError', 'January', 'LocaleHTMLCalendar', 'LocaleTextCalendar', 'MONDAY', 'SATURDAY', 'SUNDAY', 'THURSDAY', 'TUESDAY', 'TextCalendar', 'TimeEncoding', 'WEDNESDAY', '_EPOCH_ORD', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_colwidth', '_locale', '_localized_day', '_localized_month', '_spacing', 'c', 'calendar', 'datetime', 'day_abbr', 'day_name', 'error', 'firstweekday', 'format', 'formatstring', 'isleap', 'leapdays', 'main', 'mdays', 'month', 'month_abbr', 'month_name', 'monthcalendar', 'monthrange', 'prcal', 'prmonth', 'prweek', 'setfirstweekday', 'sys', 'timegm', 'week', 'weekday', 'weekheader']\n", "\n", "{'MONDAY': 0, 'weekheader': >, 'FRIDAY': 4, 'formatstring': , 'datetime': , 'timegm': , 'mdays': [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], 'calendar': >, '__package__': None, 'SATURDAY': 5, '_localized_day': , '_localized_month': , 'leapdays': , 'monthcalendar': >, '__all__': ['IllegalMonthError', 'IllegalWeekdayError', 'setfirstweekday', 'firstweekday', 'isleap', 'leapdays', 'weekday', 'monthrange', 'monthcalendar', 'prmonth', 'month', 'prcal', 'calendar', 'timegm', 'month_name', 'month_abbr', 'day_name', 'day_abbr'], 'c': , 'TUESDAY': 1, 'format': , 'SUNDAY': 6, 'THURSDAY': 3, 'IllegalMonthError': , 'LocaleTextCalendar': , 'month_name': , 'day_abbr': , '_colwidth': 20, '_EPOCH_ORD': 719163, 'main': , '__doc__': 'Calendar printing functions\\n\\nNote when comparing these calendars to the ones printed by cal(1): By\\ndefault, these calendars have Monday as the first day of the week, and\\nSunday as the last (the European convention). Use setfirstweekday() to\\nset the first day of the week (0=Monday, 6=Sunday).', 'weekday': , 'week': >, 'February': 2, 'monthrange': , 'LocaleHTMLCalendar': , 'prmonth': >, '__builtins__': {'bytearray': , 'IndexError': , 'all': , 'help': Type help() for interactive help, or help(object) for help about object., 'vars': , 'SyntaxError': , '__IPYTHON__active': 'Deprecated, check for __IPYTHON__', 'unicode': , 'UnicodeDecodeError': , 'memoryview': , 'isinstance': , 'copyright': Copyright (c) 2001-2013 Python Software Foundation.\n", "All Rights Reserved.\n", "\n", "Copyright (c) 2000 BeOpen.com.\n", "All Rights Reserved.\n", "\n", "Copyright (c) 1995-2001 Corporation for National Research Initiatives.\n", "All Rights Reserved.\n", "\n", "Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.\n", "All Rights Reserved., 'NameError': , 'BytesWarning': , 'dict': , 'input': at 0x10dd0c7d0>, 'oct': , 'bin': , 'SystemExit': , 'StandardError': , 'format': , 'repr': , 'sorted': , 'False': False, 'RuntimeWarning': , 'list': , 'iter': , 'reload': , 'Warning': , '__package__': None, 'round': , 'dir': , 'cmp': , 'set': , 'bytes': , 'reduce': , 'intern': , 'issubclass': , 'Ellipsis': Ellipsis, 'EOFError': , 'locals': , 'BufferError': , 'slice': , 'FloatingPointError': , 'sum': , 'getattr': , 'abs': , 'print': , 'True': True, 'FutureWarning': , 'ImportWarning': , 'None': None, 'hash': , 'ReferenceError': , 'len': , 'credits': Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands\n", " for supporting Python development. See www.python.org for more information., 'frozenset': , '__name__': '__builtin__', 'ord': , 'super': , 'TypeError': , 'license': Type license() to see the full license text, 'KeyboardInterrupt': , 'UserWarning': , 'filter': , 'range': , 'staticmethod': , 'SystemError': , 'BaseException': , 'pow': , 'RuntimeError': , 'float': , 'MemoryError': , 'StopIteration': , 'globals': , 'divmod': , 'enumerate': , 'apply': , 'LookupError': , 'open': , 'basestring': , 'UnicodeError': , 'zip': , 'hex': , 'long': , 'next': , 'ImportError': , 'chr': , 'xrange': , 'type': , '__doc__': \"Built-in functions, exceptions, and other objects.\\n\\nNoteworthy: None is the `nil' object; Ellipsis represents `...' in slices.\", 'Exception': , '__IPYTHON__': True, 'tuple': , 'UnicodeTranslateError': , 'reversed': , 'UnicodeEncodeError': , 'IOError': , 'hasattr': , 'delattr': , 'setattr': , 'raw_input': at 0x10dd0c848>, 'SyntaxWarning': , 'compile': , 'ArithmeticError': , 'str': , 'property': , 'dreload': , 'GeneratorExit': , 'int': , '__import__': , 'KeyError': , 'coerce': , 'PendingDeprecationWarning': , 'file': , 'EnvironmentError': , 'unichr': , 'id': , 'OSError': , 'DeprecationWarning': , 'min': , 'UnicodeWarning': , 'execfile': , 'any': , 'complex': , 'bool': , 'get_ipython': >, 'ValueError': , 'NotImplemented': NotImplemented, 'map': , 'buffer': , 'max': , 'object': , 'TabError': , 'callable': , 'ZeroDivisionError': , 'eval': , '__debug__': True, 'IndentationError': , 'AssertionError': , 'classmethod': , 'UnboundLocalError': , 'NotImplementedError': , 'AttributeError': , 'OverflowError': }, 'January': 1, '__file__': '/Applications/Canopy.app/appdata/canopy-1.4.1.1975.macosx-x86_64/Canopy.app/Contents/lib/python2.7/calendar.pyc', 'WEDNESDAY': 2, 'sys': , 'EPOCH': 1970, '_spacing': 6, 'prweek': >, '__name__': 'calendar', 'month': >, 'firstweekday': >, 'setfirstweekday': , 'TimeEncoding': , '_locale': , 'prcal': >, 'isleap': , 'TextCalendar': , 'day_name': , 'month_abbr': , 'IllegalWeekdayError': , 'error': , 'HTMLCalendar': , 'Calendar': }\n" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "for attr, val in calendar.__dict__.items():\n", " print 'name = %-20s, type = %s' % (attr, type(val))" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "name = MONDAY , type = \n", "name = weekheader , type = \n", "name = FRIDAY , type = \n", "name = formatstring , type = \n", "name = datetime , type = \n", "name = timegm , type = \n", "name = mdays , type = \n", "name = calendar , type = \n", "name = __package__ , type = \n", "name = SATURDAY , type = \n", "name = _localized_day , type = \n", "name = _localized_month , type = \n", "name = leapdays , type = \n", "name = monthcalendar , type = \n", "name = __all__ , type = \n", "name = c , type = \n", "name = TUESDAY , type = \n", "name = format , type = \n", "name = SUNDAY , type = \n", "name = THURSDAY , type = \n", "name = IllegalMonthError , type = \n", "name = LocaleTextCalendar , type = \n", "name = month_name , type = \n", "name = day_abbr , type = \n", "name = _colwidth , type = \n", "name = _EPOCH_ORD , type = \n", "name = main , type = \n", "name = __doc__ , type = \n", "name = weekday , type = \n", "name = week , type = \n", "name = February , type = \n", "name = monthrange , type = \n", "name = LocaleHTMLCalendar , type = \n", "name = prmonth , type = \n", "name = __builtins__ , type = \n", "name = January , type = \n", "name = __file__ , type = \n", "name = WEDNESDAY , type = \n", "name = sys , type = \n", "name = EPOCH , type = \n", "name = _spacing , type = \n", "name = prweek , type = \n", "name = __name__ , type = \n", "name = month , type = \n", "name = firstweekday , type = \n", "name = setfirstweekday , type = \n", "name = TimeEncoding , type = \n", "name = _locale , type = \n", "name = prcal , type = \n", "name = isleap , type = \n", "name = TextCalendar , type = \n", "name = day_name , type = \n", "name = month_abbr , type = \n", "name = IllegalWeekdayError , type = \n", "name = error , type = \n", "name = HTMLCalendar , type = \n", "name = Calendar , type = \n" ] } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## 07 \ud328\ud0a4\uc9c0\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \ud328\ud0a4\uc9c0 (Package)\n", " - \uc5ec\ub7ec \ubaa8\ub4c8\ub4e4\uc744 \ud55c\ub370 \ubb36\uc5b4\uc11c \uc815\ub9ac\ud574 \ub193\uc740 \uad6c\uc870\n", " - \ubb3c\ub9ac\uc801\uc73c\ub85c \uc5ec\ub7ec \ubaa8\ub4c8 \ud30c\uc77c\uc744 \ubaa8\uc544 \ub193\uc740 \ub514\ub809\ud1a0\ub9ac\uc5d0 \ud574\ub2f9\n", " - \ucd5c\uc0c1\uc704 \ub514\ub809\ud1a0\ub9ac \uc774\ub984\uc774 \ud328\ud0a4\uc9c0 \uc774\ub984\uc774 \ub41c\ub2e4.\n", " - \ucd5c\uc0c1\uc704 \ub514\ub809\ud1a0\ub9ac \ud558\uc704\uc5d0 \uc5ec\ub7ec \uc11c\ube0c \ub514\ub809\ud1a0\ub9ac\ub294 \ud574\ub2f9 \ucd5c\uc0c1\uc704 \ud328\ud0a4\uc9c0\uc758 \ud558\uc704 \ud328\ud0a4\uc9c0\uac00 \ub41c\ub2e4. \n", "- \uc608\uc81c: Speech \ud328\ud0a4\uc9c0\n", " - \uac01 \ud3f4\ub354\ub9c8\ub2e4 \\_\\_init\\_\\_.py \ud30c\uc77c \uc874\uc7ac\uc5d0 \uc720\uc758" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![inheritance](images/package.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7-1 \ud328\ud0a4\uc9c0\uc758 \uad6c\uc870" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import Speech" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Speech \ub514\ub809\ud1a0\ub9ac\uc758 \uc704\uce58\n", " - PYTHONPATH \ud658\uacbd \ubcc0\uc218 (\ub610\ub294 sys.path)\uc5d0 \uc5f4\uac70\ub41c \ud3f4\ub354 \uc911 \ud558\ub098\uc5d0 \uc704\uce58\ud574\uc57c \ud55c\ub2e4." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Speech/Recognition/HMM.py \ucf54\ub4dc \ub0b4\uc6a9" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def train():\n", " print \"Train\"\n", " pass\n", "\n", "def loadModel():\n", " print \"LoadModel\"\n", " pass\n", "\n", "def saveModel():\n", " print \"SaveModel\" \n", " pass" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7-2 \\_\\_init\\_\\_.py\uc758 \uc5ed\ud560\n", "- \\_\\_init\\_\\_.py \ud30c\uc77c\uc774 \uc874\uc7ac\ud574\uc57c\uc9c0\ub9cc \ud30c\uc774\uc36c \ud328\ud0a4\uc9c0\ub85c\uc11c \uc778\uc2dd\ub428" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7-3 import \ud558\uae30" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import Speech.Recognition.HMM\n", "Speech.Recognition.HMM.train()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Train\n" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "from Speech.Recognition import HMM\n", "HMM.train()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Train\n" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "from Speech.Recognition.HMM import train\n", "train()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Train\n" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7-4 import * \ud558\uae30" ] }, { "cell_type": "code", "collapsed": false, "input": [ "from Speech.Recognition.HMM import *\n", "train()\n", "loadModel()\n", "saveModel()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Train\n", "LoadModel\n", "SaveModel\n" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Speech/Recognition \ub514\ub809\ud1a0\ub9ac\uc758 \\_\\_init\\_\\_.py \ud30c\uc77c\uc5d0 \ub2e4\uc74c\uacfc \uac19\uc740 \ub0b4\uc6a9\uc774 \uc788\ub2e4\uace0 \uac00\uc815\ud558\uc790.\n", "> \\_\\_all\\_\\_ = ['HMM', 'NN', 'DTW']\n", "- \uadf8\ub7ec\uba74 Recognition \ubaa8\ub4c8\uc758 \ud558\uc704 \ubaa8\ub4c8 HMM, NN, DTW\ub97c \ub2e4\uc74c\uacfc \uac19\uc774 \ud3b8\ud558\uac8c \ucc38\uc870 \uac00\ub2a5\ud558\ub2a5\ud558\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from Speech.Recognition import *\n", "print HMM\n", "print NN\n", "print DTW\n", "HMM.train()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", "\n", "\n", "Train\n" ] } ], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7-5 \ud558\uc704 \ubaa8\ub4c8\uc774 \uc790\ub3d9\uc801\uc73c\ub85c \uc801\uc7ac\ub418\uc9c0 \uc54a\ub294\ub2e4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Speech \ub514\ub809\ud1a0\ub9ac\uc758 \\_\\_init\\_\\_.py \ud30c\uc77c\uc5d0 \ub2e4\uc74c \ub0b4\uc6a9\uc774 \uc788\ub2e4\uace0 \uac00\uc815\ud558\uc790\n", "> \\_\\_all\\_\\_ = ['Synthesis']\n", "- \uadf8\ub7ec\uba74 Speech\ub9cc import \ud574\ub3c4 Synthesis \ubaa8\ub4c8\uae4c\uc9c0\ub294 \ud3b8\ud558\uac8c \ucc38\uc870 \uac00\ub2a5\ud558\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "from Speech import *\n", "print Synthesis" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n" ] } ], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \ud558\uc9c0\ub9cc, \uadf8 \ud558\uc704 \ubaa8\ub4c8\uae4c\uc9c0\ub294 \ucc38\uc870\ud560 \uc218 \uc5c6\ub2e4." ] }, { "cell_type": "code", "collapsed": false, "input": [ "print Recognition.HMM" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "NameError", "evalue": "name 'Recognition' is not defined", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0;32mprint\u001b[0m \u001b[0mRecognition\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mHMM\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mNameError\u001b[0m: name 'Recognition' is not defined" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 7-6 \ud328\ud0a4\uc9c0 \ub0b4\ubd80\uc5d0\uc11c\uc758 \uc0c1\ud638 \ucc38\uc870\n", "- \ub3d9\uc77c\ud55c \ud558\uc704 \ub808\ubca8\uc5d0 \uc788\ub294 \ubaa8\ub4c8\uc774 \uc11c\ub85c \ucc38\uc870\ud560 \ub54c, \ud3c9\ubc94\ud55c \ubc29\ubc95\uc73c\ub85c \ucc38\uc870 \uac00\ub2a5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Speech/Recognition/DTW.py \ucf54\ub4dc \ub0b4\uc6a9" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def warping():\n", " print \"warping\"\n", " pass" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Speech/Recognition/HMM.py \ucf54\ub4dc \ub0b4\uc6a9" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def train():\n", " print \"Train\"\n", " pass\n", "\n", "def loadModel():\n", " print \"LoadModel\"\n", " pass\n", "\n", "def saveModel():\n", " print \"SaveModel\" \n", " pass\n", "\n", "import DTW\n", "DTW.warping()" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Speech/Recognition \ubaa8\ub4c8 \ubc11\uc73c\ub85c Adaptation \ubaa8\ub4c8 \ucd94\uac00\n", " - \uadf8 \ubc11\uc73c\ub85c ML.py \ubaa8\ub4c8 \ucd94\uac00" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "![inheritance](images/package2.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- Speech/Recognition/HMM.py \ucf54\ub4dc \ub0b4\uc6a9" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def train():\n", " print \"Train\"\n", " pass\n", "\n", "def loadModel():\n", " print \"LoadModel\"\n", " pass\n", "\n", "def saveModel():\n", " print \"SaveModel\" \n", " pass\n", "\n", "import DTW\n", "DTW.warping()\n", "\n", "import Adaptation.ML\n", "Adaptation.ML.test()" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "def train():\n", " print \"Train\"\n", " pass\n", "\n", "def loadModel():\n", " print \"LoadModel\"\n", " pass\n", "\n", "def saveModel():\n", " print \"SaveModel\" \n", " pass\n", "\n", "import DTW\n", "DTW.warping()\n", "\n", "from Adaptation import ML\n", "ML.test()" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "code", "collapsed": false, "input": [ "def train():\n", " print \"Train\"\n", " pass\n", "\n", "def loadModel():\n", " print \"LoadModel\"\n", " pass\n", "\n", "def saveModel():\n", " print \"SaveModel\" \n", " pass\n", "\n", "import DTW\n", "DTW.warping()\n", "\n", "from Adaptation.ML import *\n", "test()" ], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }