{ "metadata": { "name": "", "signature": "sha256:a20c732b7b341aa22f52efda32e619ca80827107c51037697b6a6748dff633a8" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "#PYTHON OBJECT ORIENTED PROGRAMMING (not an alien thing)\n", "### Scientific computing with python seminar \n", "by Mauricio J. Del Razo S. 2014" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 1. FIRST STEPS" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##Objects in python are like objects in the world (or should I say the universe). \n", "\n", "Every object belongs to a certain class of objects with certain properties. For instance, our favorite extraterrestial beings can be objects:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class alien:\n", " # A property of all aliens\n", " appearance = 'ugly'" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 1 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Each of our aliens is an object that belongs to the class alien (Yes, I'm saying Aliens are objects)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "ET = alien()\n", "Alf = alien()\n", "Yoda = alien()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Every one of our buddies will have the same appearance" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print(ET.appearance, Alf.appearance, Yoda.appearance)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "('ugly', 'ugly', 'ugly')\n" ] } ], "prompt_number": 3 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### All aliens might have the same rights, but they are not the same" ] }, { "cell_type": "code", "collapsed": false, "input": [ "ET.color = 'red'\n", "ET.head = 'giant'\n", "ET.planet = 'Mars?'\n", "\n", "Alf.color = 'yellow'\n", "Alf.head = 'funny with an elephant trompe'\n", "Alf.planet = 'Melmac'\n", "\n", "Yoda.color = 'green'\n", "Yoda.head = 'wrinkled with long hairy ears'\n", "Yoda.planet = 'Jupitron'" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "print('ET:',ET.appearance,ET.color, ET.planet, ET.head)\n", "print('Alf:',Alf.appearance,Alf.color, Alf.planet, Alf.head)\n", "print('Yoda:',Yoda.appearance,Yoda.color, Yoda.planet, Yoda.head)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "('ET:', 'ugly', 'red', 'Mars?', 'giant')\n", "('Alf:', 'ugly', 'yellow', 'Melmac', 'funny with an elephant trompe')\n", "('Yoda:', 'ugly', 'green', 'Jupitron', 'wrinkled with long hairy ears')\n" ] } ], "prompt_number": 5 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## BUT WATCH OUT w/CLASS VARIABLES AND INSTANCE VARIABLES!!!\n", "Class variables are usually shared among all the objects of that class; they are more \"global\", like appearance.\n", "\n", "Instance variables are those unique to each object, like color, planet and head.\n", "\n", "If we are not careful, we might end up messing up:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "alien.appearance = 'handsome stallion'\n", "print(ET.appearance,Alf.appearance,Yoda.appearance)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "('handsome stallion', 'handsome stallion', 'handsome stallion')\n" ] } ], "prompt_number": 6 }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 2. INTRODUCTION TO OBJECT ORIENTED PROGRAMMING" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We call an object an instance of a certain class . \n", "\n", "Each class (alien) has its class variables (appearance) that everyone in their class share with the same value. \n", "\n", "Each instance of a class (an object like ET,Alf or Yoda) has unique values for their instance variables (color, planet and head)\n", "\n", "It is better to define the variables when creating the class to avoid a mess. Whenever we define a new object using a class, the function \"def __init__\" is called. We use the variable \"self\" to make sure we are refering to the instance variables specific to each object. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Lets be more careful and add some complexity to our previous example:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Second version of the alien class\n", "class alienV2(object):\n", " # Class variable\n", " number = 0\n", " \n", " # Initialization function\n", " def __init__(self, name, color, planet, head):\n", " # Instance variables\n", " self.name = name\n", " self.color = color\n", " self.planet = planet\n", " self.head = head\n", " alienV2.number += 1\n", " \n", " # A class function\n", " def speak(self):\n", " print('My name is ' + self.name + ' from the planet ' + self.planet + '; my head is '\n", " + self.head + ', and my skin gets more and more ' + self.color + \n", " ' when I tan in the sun. There are other ' + str(alienV2.number -1) + ' aliens like me hiding in this code.')\n", " print(' ')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 7 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also define all the instance variables at the moment we create the object:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "alien_1 = alienV2('ET','red','Mars','big')\n", "alien_2 = alienV2('Alf','yellow','Melmac','funny with an elephant trompe')\n", "alien_3 = alienV2('Yoda','green','Jupitron','wrinkled with long hairy ears') " ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 8 }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can also define actions or functions within the class. For instance, we can make our aliens introduce themselves:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "alien_3.speak()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "My name is Yoda from the planet Jupitron; my head is wrinkled with long hairy ears, and my skin gets more and more green when I tan in the sun. There are other 2 aliens like me hiding in this code.\n", " \n" ] } ], "prompt_number": 9 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### We can also define an array of objects: " ] }, { "cell_type": "code", "collapsed": false, "input": [ "alienV2.number = 0\n", "alien_list = [] \n", "alien_list.append(alienV2('ET','red','Mars','big'))\n", "alien_list.append(alienV2('Alf','yellow','Melmac','funny with like an elephant trompe'))\n", "alien_list.append(alienV2('Yoda','green','Jupitron','wrinkled with long hairy ears'))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 10 }, { "cell_type": "code", "collapsed": false, "input": [ "for i in range(len(alien_list)):\n", " alien_list[i].speak()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "My name is ET from the planet Mars; my head is big, and my skin gets more and more red when I tan in the sun. There are other 2 aliens like me hiding in this code.\n", " \n", "My name is Alf from the planet Melmac; my head is funny with like an elephant trompe, and my skin gets more and more yellow when I tan in the sun. There are other 2 aliens like me hiding in this code.\n", " \n", "My name is Yoda from the planet Jupitron; my head is wrinkled with long hairy ears, and my skin gets more and more green when I tan in the sun. There are other 2 aliens like me hiding in this code.\n", " \n" ] } ], "prompt_number": 11 }, { "cell_type": "markdown", "metadata": {}, "source": [ "##Excercise:\n", "1. Create your own class with several instance variables and one class variable\n", "2. Add a function/action to your class\n", "3. Create an array of objects that are instances of your new class\n", "\n", "You can use the following template:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class your_class(object):\n", " # Class variables here\n", " \n", " def __init__(self,instance_var):\n", " # Instance variables here (and in the init function)\n", " self.instance_var = instance_var\n", " \n", " # Define a functon or action for your object\n", " def action(self):\n", " # Do something, like:\n", " self.instance_var = 0" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 3. INHERITANCE" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we want to extend the functionality of a class, we have a three possibilities: modify the class, rewrite the class or use class inheritance. If we modify the class, we will have to modify all the code that calls this class; rewriting the class seems to be a waste of time, since most of the functionality might already be there. The best choice is to use clas inheritance, which follows this structure: " ] }, { "cell_type": "raw", "metadata": {}, "source": [ "#define child class\n", "class child_class(parent_class):\n", " # initialization is not neccesary\n", " def __init__(self):\n", " print \"Calling child constructor\"\n", "\n", " def childMethod(self):\n", " print 'Calling child method'" ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Define a child class that has alienV2 as parent class\n", "%pylab inline\n", "from IPython.display import Image\n", "\n", "class alien_interactive(alienV2):\n", " \n", " # Initialize child class function \n", " def __init__(self, imgsrc, name, color, planet, head):\n", " super(alien_interactive, self).__init__(name, color, planet, head)\n", " self.imgsrc = imgsrc \n", " \n", " def show_yourself(self):\n", " img = Image(filename=self.imgsrc)\n", " display(img)\n", " self.speak()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 13 }, { "cell_type": "code", "collapsed": false, "input": [ "alien_list = []\n", "alienV2.number = 0 # Note it's not alien_interactive.number\n", "alien_list.append(alien_interactive('images/ET.jpg','ET','red','Mars','big'))\n", "alien_list.append(alien_interactive('images/Alf.jpg','Alf','yellow','Melmac','funny with like an elephant trompe'))\n", "alien_list.append(alien_interactive('images/yoda.jpg','Yoda','green','Jupitron','wrinkled with long hairy ears'))" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 14 }, { "cell_type": "code", "collapsed": false, "input": [ "alien_list[1].show_yourself()" ], "language": "python", "metadata": {}, "outputs": [ { "jpeg": "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\nWf/Z\n", "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "My name is Alf from the planet Melmac; my head is funny with like an elephant trompe, and my skin gets more and more yellow when I tan in the sun. There are other 2 aliens like me hiding in this code.\n", " \n" ] } ], "prompt_number": 15 }, { "cell_type": "code", "collapsed": false, "input": [ "from IPython.html.widgets import interact\n", "\n", "def show_interactive(alien_number):\n", " alien_list[alien_number].show_yourself()\n", "\n", "interact(show_interactive, alien_number=(0,2));" ], "language": "python", "metadata": {}, "outputs": [ { "jpeg": "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\nWf/Z\n", "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "My name is Alf from the planet Melmac; my head is funny with like an elephant trompe, and my skin gets more and more yellow when I tan in the sun. There are other 2 aliens like me hiding in this code.\n", " \n" ] } ], "prompt_number": 16 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Excercise:\n", "1. Creata a child class from the class you created before\n", "2. Add new instance variables and a new function\n", "3. Create an array of objects with: \"[ your_class_child(instance_variables) for i in range(3)] \"\n", "\n", "You can use the following template\n", "\n" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class your_class_child(your_class):\n", " \n", " # Initialize child class function \n", " def __init__(self, child_instance_variable, parent_instance_variable):\n", " super(your_class_child, self).__init__(parent_instance_variable)\n", " # Define child instance variables\n", " self.child_instance_variable = child_instance_variable\n", " \n", " # Add an action unique to the child class\n", " def child_action(self):\n", " # Do something, like\n", " self.child_instance_variable = 0" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 4. WHAT ARE *args AND **kwargs?\n", "This two commands are very useful when it comes to object oriented programming; however, they don't have to be neccesarily used in the context of object oriented programming. We can also used them when calling a function or other situations. Here we will cover a couple of examples in object oriented programming." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## *args:\n", "The argument *args let you pass an arbitrary number of arguments to your function. This is particularly useful, when you want to inherit from a parent class without knowing too much about it. For instance, lets make another child class of alienV2 with the same functionality as before, bu this time we will use *args." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Define a child class that has alienV2 as parent class\n", "class alien_interactiveV2(alienV2):\n", " \n", " # Initialize child class function \n", " def __init__(self, imgsrc,*args):\n", " super(alien_interactiveV2, self).__init__(*args)\n", " self.imgsrc = imgsrc \n", " \n", " def show_yourself(self):\n", " try:\n", " img = Image(filename=self.imgsrc)\n", " except:\n", " img = Image(url=self.imgsrc)\n", " display(img)\n", " self.speak()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 18 }, { "cell_type": "code", "collapsed": false, "input": [ "alien_list.append(alien_interactiveV2('http://tinyurl.com/mnwj7wj','Ridley Scott','white','LV223','voluptuous'))\n", "interact(show_interactive, alien_number=(0,3));" ], "language": "python", "metadata": {}, "outputs": [ { "jpeg": "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\nWf/Z\n", "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "My name is Alf from the planet Melmac; my head is funny with like an elephant trompe, and my skin gets more and more yellow when I tan in the sun. There are other 3 aliens like me hiding in this code.\n", " \n" ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **kwargs:\n", "The argument **kwargs let you pass a dictionary to your function. This is particularly useful, when you want to write into specific instance variables of your parent class without knowing too much about it, nor the order you have to pass them. For instance, lets make another child class of alienV2 with the same functionality as before, bu this time we will use **kwargs and *args." ] }, { "cell_type": "code", "collapsed": false, "input": [ "# Define a child class that has alienV2 as parent class\n", "class alien_interactiveV3(alienV2):\n", " \n", " # Initialize child class function \n", " def __init__(self, *args,**kwargs):\n", " super(alien_interactiveV3, self).__init__(**kwargs)\n", " self.imgsrc = args[0] \n", " \n", " def show_yourself(self):\n", " try:\n", " img = Image(filename=self.imgsrc)\n", " except:\n", " img = Image(url=self.imgsrc)\n", " display(img)\n", " self.speak()" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 20 }, { "cell_type": "code", "collapsed": false, "input": [ "characteristics = {'head':\"like Homer Simpson's with tentacles\",\n", " 'name':'Zoidberg', \n", " 'color':'pink', \n", " 'planet':' Decapod 10'}\n", "alien_list.append(alien_interactiveV3('http://tinyurl.com/ngdd6ul',**characteristics))\n", "interact(show_interactive, alien_number=(0,4));\n" ], "language": "python", "metadata": {}, "outputs": [ { "html": [ "" ], "metadata": {}, "output_type": "display_data", "text": [ "" ] }, { "output_type": "stream", "stream": "stdout", "text": [ "My name is Zoidberg from the planet Decapod 10; my head is like Homer Simpson's with tentacles, and my skin gets more and more pink when I tan in the sun. There are other 4 aliens like me hiding in this code.\n", " \n" ] } ], "prompt_number": 21 }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Excercise:\n", "1. Create a new child class from the class you created before\n", "2. Use *args and **kwargs to simplify the code\n", "3. Add an object to your array of objects using this new class" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 5. FINAL NOTES\n", "Everything in python is an object" ] }, { "cell_type": "code", "collapsed": false, "input": [ "txt = 'my name is Zoidberg'" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 22 }, { "cell_type": "code", "collapsed": false, "input": [ "txt" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 23, "text": [ "'my name is Zoidberg'" ] } ], "prompt_number": 23 }, { "cell_type": "code", "collapsed": false, "input": [ "txt.upper()" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 24, "text": [ "'MY NAME IS ZOIDBERG'" ] } ], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Loades modules like numpy, scipy, matplotlib, etc... are objets..." ] }, { "cell_type": "code", "collapsed": false, "input": [ "import numpy as np" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 25 }, { "cell_type": "code", "collapsed": false, "input": [ "np.__name__" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 26, "text": [ "'numpy'" ] } ], "prompt_number": 26 }, { "cell_type": "code", "collapsed": false, "input": [ "np.__class__" ], "language": "python", "metadata": {}, "outputs": [ { "metadata": {}, "output_type": "pyout", "prompt_number": 27, "text": [ "module" ] } ], "prompt_number": 27 }, { "cell_type": "markdown", "metadata": {}, "source": [ "Write np. and then press tab..." ] }, { "cell_type": "code", "collapsed": false, "input": [ "np." ], "language": "python", "metadata": {}, "outputs": [ { "ename": "SyntaxError", "evalue": "invalid syntax (, line 1)", "output_type": "pyerr", "traceback": [ "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m np.\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n" ] } ], "prompt_number": 28 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Yesss! Classes can get very complicated, and that's why inheritance is very useful!!!\n", "For some more advance applications, also check \"polymorphism\".\n", "\n", "Although, the examples presented in this notebook seem dumb; they provide all the core understanding of object oriented programming required to do scientific computing.\n", "\n", " Some ideas of interesting applications in scientific computing: \n", "- Simple and efficient use of complicated data structures: np.array, graphs or networks (neighbors and connectivity like instance variables ).\n", "- Defining operations and/or algorithms in arbitrary data structures (sparse matrix vs non-sparse).\n", "- Stochastic simulations of jump processes.\n", "- Many, many, many others...\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# 6. ASSIGNMENT: AN INTEGRATOR PARENT\n", "1 Create a function func for the function $f(x) = sin(x)$.\n", "\n", "2 A template of the parent class integrator is provided. This class will have all the common functionality to integrate a function f in the interval [a,b]. However, the method of integration is not yet providednor the integration function. Read carefully the template, note the method of integration is not defined:" ] }, { "cell_type": "code", "collapsed": false, "input": [ "class Integrator:\n", " def __init__(self, a, b, n):\n", " self.a, self.b, self.n = a, b, n\n", " self.points, self.weights = self.method()\n", " \n", " def method(self):\n", " raise NotImplementedError('no rule in class %s' %self.__class__.__name__)" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ " 3 Add an additional function called integrate(self,func) inside the class Integrator, which calculates the integral from the weigths $w_i$: self.weights at different points x_i:self.points. Note this should be arrays. The integral is calculated as\n", "\n", "$$\n", "\\int_a^b f(x) dx = \\sum_{i=0}^{n-1} w_i f(x_i)\n", "$$\n", "\n", "4 Create a child class of Integrator called Trapezoidal, where you define a function called method(self).\n", "This function should return two arrays: x and w corresponding to the points and their current weights.This should be the values correponding to the trapezoidal rule for integration. If you are not familiar with it, you can look for it online\n", "\n", "5 Create a child class of Integrator called Midpoint. It should do the same as Trapezoidal but employing the midpoint method for numerical integration.\n", "\n", "6 Create a separate function of x that plots\n", "$\n", "\\int_0^x sin(x) dx = 1 - cos(x),\n", "$\n", "using any of the two methods you developed." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }