This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from pymongo import MongoClient | |
from bson.objectid import ObjectId | |
from project import Project | |
class ProjectsRepository(object): | |
""" Repository implementing CRUD operations on projects collection in MongoDB """ | |
def __init__(self): | |
# initializing the MongoClient, this helps to | |
# access the MongoDB databases and collections |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from bson.objectid import ObjectId | |
class Project(object): | |
"""A class for storing Project related information""" | |
def __init__(self, project_id=None, title=None, description=None, price=0.0, assigned_to=None): | |
if project_id is None: | |
self._id = ObjectId() | |
else: | |
self._id = project_id |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#creating a new dictionary with 3 keys : name, age and balance | |
d = { "name": "John Doe", "age": 44, "balance": 235.5 } | |
#printing out the values of the dictionary using the kyes | |
print(d["name"]) # will display "John Doe" | |
print(d["age"]) # will display 44 | |
print(d["balance"]) # will display 235.5 | |
#using dict to create dictionaries | |
my_dict_1 = dict(name="John Doe", age=44, balance=235.5) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
my_list_1 = [1, 3, 5, 7, 11, 13, 17] | |
my_list_2 = range(10, 21) # will result [10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] | |
my_list_3 = range(10) | |
for nr in my_list_3: | |
print(nr) | |
# and maybe do some other stuff | |
#indexing - used for getting and setting values |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
>>> from mro_type_error import Phablet | |
Traceback (most recent call last): | |
File "<stdin>", line 1, in <module> | |
File "mro_type_error.py", line 30, in <module> | |
class Phablet(SmartPhone, Tablet): | |
TypeError: Cannot create a consistent method resolution | |
order (MRO) for bases Phone, Computer | |
>>> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Phone(object): | |
def __init__(self): | |
print("Phone constructor invoked.") | |
def call_number(self, phone_number): | |
print("Calling number {}".format(phone_number)) | |
class Computer(object): | |
def __init__(self): |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
>>> SmartPhone.mro() | |
[<class 'SmartPhone'>, <class 'Phone'>, <class 'Computer'>, <class 'object'>] | |
>>> SmartPhone.__mro__ | |
(<class 'SmartPhone'>, <class 'Phone'>, <class 'Computer'>, <class 'object'>) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Python 3.2.3 (default, Feb 27 2014, 21:31:18) | |
[GCC 4.6.3] on linux2 | |
Type "help", "copyright", "credits" or "license" for more information. | |
>>> from oop_multi import SmartPhone | |
>>> s = SmartPhone() | |
Phone constructor invoked. | |
Computer constructor invoked. | |
>>> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Phone(object): | |
def __init__(self): | |
print("Phone constructor invoked.") | |
def call_number(self, phone_number): | |
print("Calling number {}".format(phone_number)) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# will be discussed later why only the constructor of Phone class was invoked | |
# | |
>>> my_iphone = SmartPhone() | |
Phone constructor invoked. | |
>>> my_iphone.call_number("123456789") | |
Calling number 123456789 | |
>>> my_iphone.install_software("python") |