Object oriented programming

  • OOP is a way of structuring code to make it more reusable, maintainable, etc.

  • All libraries we use are using object oriented programming, therefore is good to understand the basic concepts

  • Explain that the input() is just

class User(object):

    def __init__(self):
        print("Provide first name: ")
        self.name = input()
        print("Provide last name: ")
        self.last = input()

    def __repr__(self):
        return '<User %r>' % self.name

    def __str__(self):
        return self.name
    
    def change_first_name(self):
        print("Modify the first name")
        self.name = input()
    
    def change_last_name(self):
        print("Modify the last name")
        self.last = input()
list = []
for user in range(2):
    user = User()
    list.append(user)
Provide first name: 
 Jose
Provide last name: 
 Urra
Provide first name: 
 Ashley
Provide last name: 
 Crian
print(list)
list[0].change_first_name()
'''
Run these commands step by step on the intepreter
'''
new_city = City(['c','Havana',-133.996669,190.000000,9500])
## check types (no need to use print in the python shell)
print(type(new_city))

## Explain the object stored in memory
print(new_city)
## Print a property of the city
print(new_city.name)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-4-e32e76a4f1a0> in <module>
      2 Run these commands step by step on the intepreter
      3 '''
----> 4 new_city = City(['c','Havana',-133.996669,190.000000,9500])
      5 ## check types (no need to use print in the python shell)
      6 print(type(new_city))

NameError: name 'City' is not defined
'''
These commands are meant to be used first in the python interpreter
'''
## Skip first this step and look at the error
from map import City

# 1. Skip this step and only doing after reflecting on error
# from map import Map

# 2. Create a city object from the given class
new_city = City(['c', 'Havana', 0.1, 2.6, 100000])

## 3. Inspect a city object
print(new_city.name)

## Create a map object
new_map = Map('oregonmap.csv')

## Inspect the Map