{ "metadata": { "name": "ObjectOriented2" }, "nbformat": 2, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "class Bear:\n", " def __init__(self, name):\n", " self.name = name\n", " print \" made a bear called %s\" % (name)\n", " def __del__(self):\n", " print \"Bang! %s is no longer\" % self.name" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "y = Bear(\"Yogi\") ; c = Bear(\"Winnie\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " made a bear called Yogi\n", " made a bear called Winnie\n" ] } ], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "del y; del c" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Bang! Yogi is no longer\n", "Bang! Winnie is no longer\n" ] } ], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "y = Bear(\"Yogi\") ; y = Bear(\"Winnie\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " made a bear called Yogi\n", " made a bear called Winnie\n", "Bang! Yogi is no longer\n" ] } ], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "from bear import *" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "a = Bear(\"Yogi\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " made a bear called Yogi\n" ] } ], "prompt_number": 6 }, { "cell_type": "code", "collapsed": false, "input": [ "b = Bear(\"Fozzie\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " made a bear called Fozzie\n" ] } ], "prompt_number": 7 }, { "cell_type": "code", "collapsed": false, "input": [ "Bear.bear_num" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 8, "text": [ "2" ] } ], "prompt_number": 8 }, { "cell_type": "code", "collapsed": false, "input": [ "del a; del b" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Bang! Yogi is no longer.\n", "Bang! Fozzie is no longer.\n" ] } ], "prompt_number": 9 }, { "cell_type": "code", "collapsed": false, "input": [ "Bear.bear_num" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 10, "text": [ "0" ] } ], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "cat bear.log" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[2013-06-11 22:43:21.377562] created bear #1 named Yogi\r\n", "[2013-06-11 22:43:53.125543] created bear #2 named Fozzie\r\n", "[2013-06-11 22:44:06.881290] deleted bear #1 named Yogi\r\n", "[2013-06-11 22:44:06.881465] deleted bear #2 named Fozzie\r\n" ] } ], "prompt_number": 11 }, { "cell_type": "code", "collapsed": false, "input": [ "import datetime\n", "class Bear:\n", " logfile_name = \"bear.log\"\n", " bear_num = 0\n", " def __init__(self,name):\n", " self.name = name\n", " print \" made a bear called %s\" % (name)\n", " self.logf = open(Bear.logfile_name,\"a\")\n", " Bear.bear_num += 1\n", " self.my_num = Bear.bear_num\n", " self.logf.write(\"[%s] created bear #%i named %s\\n\" % \\\n", " (datetime.datetime.now(),Bear.bear_num,self.name))\n", " self.logf.flush()\n", "\n", " def growl(self,nbeep=5):\n", " print \"\\a\"*nbeep\n", "\n", " def __del__(self):\n", " print \"Bang! %s is no longer.\" % self.name\n", " self.logf.write(\"[%s] deleted bear #%i named %s\\n\" % \\\n", " (datetime.datetime.now(),self.my_num,self.name))\n", " self.logf.flush()\n", " # decrement the number of bears in the population\n", " Bear.bear_num -= 1\n", " # dont really need to close because Python will do the garbage collection\n", " # for us. but it cannot hurt to be graceful here.\n", " self.logf.close()\n", " \n", " def __str__(self):\n", " return \" name = %s bear number = %i (population %i)\" % \\\n", " (self.name, self.my_num,Bear.bear_num)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "code", "collapsed": false, "input": [ "b = Bear(\"Fozzie\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " made a bear called Fozzie\n" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "print b" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " name = Fozzie bear number = 1 (population 1)\n" ] } ], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "a = Bear(\"Yogi\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " made a bear called Yogi\n" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "print b" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " name = Fozzie bear number = 1 (population 2)\n" ] } ], "prompt_number": 16 }, { "cell_type": "code", "collapsed": false, "input": [ "import bear2" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "d = bear2.Bear(\"Yogi\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " made a bear called Yogi\n" ] } ], "prompt_number": 24 }, { "cell_type": "code", "collapsed": false, "input": [ "print d" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " name = Yogi bear (age 0:00:02.966770) number = 1 (population 1)\n" ] } ], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "print d" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " name = Yogi bear (age 0:00:05.614769) number = 1 (population 1)\n" ] } ], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "print d" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " name = Yogi bear (age 0:00:07.956017) number = 1 (population 1)\n" ] } ], "prompt_number": 27 }, { "cell_type": "code", "collapsed": false, "input": [ "print d" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " name = Yogi bear (age 0:01:44.396218) number = 1 (population 1)\n" ] } ], "prompt_number": 28 }, { "cell_type": "code", "collapsed": false, "input": [ "import bear3" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 29 }, { "cell_type": "code", "collapsed": false, "input": [ "y = bear3.Bear(\"Yogi\"); z = bear3.Bear(\"Fozzie\")" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " made a bear called Yogi\n", " made a bear called Fozzie\n" ] } ], "prompt_number": 31 }, { "cell_type": "code", "collapsed": false, "input": [ "our_kid = y + z" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " made a bear called progeny_of_Yogi_and_Fozzie\n" ] } ], "prompt_number": 37 }, { "cell_type": "code", "collapsed": false, "input": [ "our_kid.parents" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 38, "text": [ "(, )" ] } ], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [ "our_kid.parents[0].name" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 39, "text": [ "'Yogi'" ] } ], "prompt_number": 39 }, { "cell_type": "code", "collapsed": false, "input": [ "our_kid.parents[1].name" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 40, "text": [ "'Fozzie'" ] } ], "prompt_number": 40 }, { "cell_type": "code", "collapsed": false, "input": [ "our_kid1 = y * z" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ " made a bear called progeny_of_Yogi_and_Fozzie\n" ] } ], "prompt_number": 41 }, { "cell_type": "code", "collapsed": false, "input": [ "print bear3.Bear.__doc__" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "\n", " class to show off addition (and multiplication)\n", " \n" ] } ], "prompt_number": 42 }, { "cell_type": "code", "collapsed": false, "input": [ "print bear3.Bear.__name__" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Bear\n" ] } ], "prompt_number": 43 }, { "cell_type": "code", "collapsed": false, "input": [ "print bear3.Bear.__module__" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "bear3\n" ] } ], "prompt_number": 46 }, { "cell_type": "code", "collapsed": false, "input": [ "print bear3.Bear.__bases__" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "()\n" ] } ], "prompt_number": 44 }, { "cell_type": "code", "collapsed": false, "input": [ "print bear3.Bear.__dict__" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "{'__module__': 'bear3', 'bear_num': 7, '__mul__': , '__add__': , '__doc__': '\\n class to show off addition (and multiplication)\\n ', '__init__': }\n" ] } ], "prompt_number": 47 }, { "cell_type": "code", "collapsed": false, "input": [ "class JustCounter:\n", " __secretCount = 0\n", " def count(self):\n", " self.__secretCount += 1\n", " print self.__secretCount" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 48 }, { "cell_type": "code", "collapsed": false, "input": [ "counter = JustCounter()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 49 }, { "cell_type": "code", "collapsed": false, "input": [ "counter.count(); counter.count()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "1\n", "2\n" ] } ], "prompt_number": 50 }, { "cell_type": "code", "collapsed": false, "input": [ "print counter.__secretCount" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "AttributeError", "evalue": "JustCounter instance has no attribute '__secretCount'", "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[0;32m----> 1\u001b[0;31m \u001b[0;32mprint\u001b[0m \u001b[0mcounter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__secretCount\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m: JustCounter instance has no attribute '__secretCount'" ] } ], "prompt_number": 51 }, { "cell_type": "code", "collapsed": false, "input": [ "class Bear:\n", " bear_num = 0\n", " def __init__(self,name):\n", " self.name = name\n", " Bear.bear_num += 1\n", " self.my_num = Bear.bear_num" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 58 }, { "cell_type": "code", "collapsed": false, "input": [ "a = Bear(\"Yogi\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 59 }, { "cell_type": "code", "collapsed": false, "input": [ "a" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 61, "text": [ "<__main__.Bear instance at 0x108ba1908>" ] } ], "prompt_number": 61 }, { "cell_type": "code", "collapsed": false, "input": [ "b = a" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 62 }, { "cell_type": "code", "collapsed": false, "input": [ "b" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 63, "text": [ "<__main__.Bear instance at 0x108ba1908>" ] } ], "prompt_number": 63 }, { "cell_type": "code", "collapsed": false, "input": [ "a.name = \"Fozzie\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 70 }, { "cell_type": "code", "collapsed": false, "input": [ "b.name" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 71, "text": [ "'Fozzie'" ] } ], "prompt_number": 71 }, { "cell_type": "code", "collapsed": false, "input": [ "Bear.bear_num" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 72, "text": [ "1" ] } ], "prompt_number": 72 }, { "cell_type": "code", "collapsed": false, "input": [ "import copy" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 73 }, { "cell_type": "code", "collapsed": false, "input": [ "c = copy.copy(a)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 74 }, { "cell_type": "code", "collapsed": false, "input": [ "c" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 75, "text": [ "<__main__.Bear instance at 0x108ba2830>" ] } ], "prompt_number": 75 }, { "cell_type": "code", "collapsed": false, "input": [ "Bear.bear_num" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 76, "text": [ "1" ] } ], "prompt_number": 76 }, { "cell_type": "code", "collapsed": false, "input": [ "c.name" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 77, "text": [ "'Fozzie'" ] } ], "prompt_number": 77 }, { "cell_type": "code", "collapsed": false, "input": [ "c.name = \"Winnie\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 78 }, { "cell_type": "code", "collapsed": false, "input": [ "a.name" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 79, "text": [ "'Fozzie'" ] } ], "prompt_number": 79 }, { "cell_type": "code", "collapsed": false, "input": [ "a.mylist = [1,2,3]" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 80 }, { "cell_type": "code", "collapsed": false, "input": [ "c.mylist" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "AttributeError", "evalue": "Bear instance has no attribute 'mylist'", "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[0;32m----> 1\u001b[0;31m \u001b[0mc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmylist\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mAttributeError\u001b[0m: Bear instance has no attribute 'mylist'" ] } ], "prompt_number": 81 }, { "cell_type": "code", "collapsed": false, "input": [ "d = copy.copy(a)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 83 }, { "cell_type": "code", "collapsed": false, "input": [ "d.mylist" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 84, "text": [ "[1, 2, 3]" ] } ], "prompt_number": 84 }, { "cell_type": "code", "collapsed": false, "input": [ "d.name" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 85, "text": [ "'Fozzie'" ] } ], "prompt_number": 85 }, { "cell_type": "code", "collapsed": false, "input": [ "d.name = \"Yogi\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 86 }, { "cell_type": "code", "collapsed": false, "input": [ "a.name" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 87, "text": [ "'Fozzie'" ] } ], "prompt_number": 87 }, { "cell_type": "code", "collapsed": false, "input": [ "a.mylist[0] = -1" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 88 }, { "cell_type": "code", "collapsed": false, "input": [ "d.mylist" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 89, "text": [ "[-1, 2, 3]" ] } ], "prompt_number": 89 }, { "cell_type": "code", "collapsed": false, "input": [ "e = copy.deepcopy(a)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 90 }, { "cell_type": "code", "collapsed": false, "input": [ "a.mylist[0] = \"a\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 91 }, { "cell_type": "code", "collapsed": false, "input": [ "e.mylist" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 92, "text": [ "[-1, 2, 3]" ] } ], "prompt_number": 92 }, { "cell_type": "code", "collapsed": false, "input": [ "from subclass import Plant,Flower" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 109 }, { "cell_type": "code", "collapsed": false, "input": [ "p = Plant(\"poison ivy\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 117 }, { "cell_type": "code", "collapsed": false, "input": [ "e = Flower(\"poppy\")" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 118 }, { "cell_type": "code", "collapsed": false, "input": [ "Plant.num_known" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 119, "text": [ "2" ] } ], "prompt_number": 119 }, { "cell_type": "code", "collapsed": false, "input": [ "Flower.__bases__[0].__name__" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 120, "text": [ "'Plant'" ] } ], "prompt_number": 120 }, { "cell_type": "code", "collapsed": false, "input": [ "f = Flower(\"rose\"); print f" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "I am a flower (rose)!\n" ] } ], "prompt_number": 121 }, { "cell_type": "code", "collapsed": false, "input": [ "p = Plant(\"oak\"); print p" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "I am a plant (oak)!\n" ] } ], "prompt_number": 122 }, { "cell_type": "code", "collapsed": false, "input": [ "f.npedals" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "pyout", "prompt_number": 123, "text": [ "5" ] } ], "prompt_number": 123 }, { "cell_type": "code", "collapsed": false, "input": [ "3.1415 / 0" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "ZeroDivisionError", "evalue": "float division by zero", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mZeroDivisionError\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;36m3.1415\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mZeroDivisionError\u001b[0m: float division by zero" ] } ], "prompt_number": 124 }, { "cell_type": "code", "collapsed": false, "input": [ "def this_fails():\n", " x = 3.1415 / 0" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 125 }, { "cell_type": "code", "collapsed": false, "input": [ "try:\n", " this_fails()\n", "except ZeroDivisionError as detail:\n", " print \"Handling run-time error:\", detail" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Handling run-time error: float division by zero\n" ] } ], "prompt_number": 126 }, { "cell_type": "code", "collapsed": false, "input": [ "def divide(x, y):\n", " try:\n", " result = x / y\n", " except ZeroDivisionError:\n", " print \"division by zero!\"\n", " else:\n", " print \"result is\", result\n", " finally:\n", " print \"executing finally clause\"" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 127 }, { "cell_type": "code", "collapsed": false, "input": [ "divide(2, 1)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "result is 2\n", "executing finally clause\n" ] } ], "prompt_number": 128 }, { "cell_type": "code", "collapsed": false, "input": [ "divide(2, 0)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "division by zero!\n", "executing finally clause\n" ] } ], "prompt_number": 129 }, { "cell_type": "code", "collapsed": false, "input": [ "divide(\"2\", \"1\")" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "TypeError", "evalue": "unsupported operand type(s) for /: 'str' and 'str'", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mTypeError\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[0mdivide\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"2\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"1\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;32m\u001b[0m in \u001b[0;36mdivide\u001b[0;34m(x, y)\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mdivide\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mresult\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mx\u001b[0m \u001b[0;34m/\u001b[0m \u001b[0my\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mZeroDivisionError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;32mprint\u001b[0m \u001b[0;34m\"division by zero!\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mTypeError\u001b[0m: unsupported operand type(s) for /: 'str' and 'str'" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "executing finally clause\n" ] } ], "prompt_number": 130 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }