PYTHON PROGRAMMING VI. CLASSES AND OBJECTS Engr. Ranel O. Padon
PYTHON PROGRAMMING TOPICS I •Introduction to Python Programming II •Python Basics III •Controlling the Program Flow IV •Program Components: Functions, Classes, Packages, and Modules V •Sequences (List and Tuples), and Dictionaries VI •Object-Based Programming: Classes and Objects VII •Customizing Classes and Operator Overloading VIII •Object-Oriented Programming: Inheritance and Polymorphism IX •Randomization Algorithms X •Exception Handling and Assertions XI •String Manipulation and Regular Expressions XII •File Handling and Processing XIII •GUI Programming Using Tkinter
PROGRAMMING PARADIGMS
PROGRAMMING PARADIGMS • Procedural/Imperative (C, FORTRAN, COBOL) • Object-Oriented (C++, Java, C#, Objective-C) Objective-C is used in Apple’s OS X and iOS and for customizing its apps. • Functional Programming (Lisp) Lisp is used for customizing AutoCAD • Logic Programming (Prolog) • Concurrent (Erlang) • Multi-Paradigm (Python, Scala, PHP, JavaScript) •…
PROGRAMMING PARADIGMS http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
PROGRAMMING PARADIGMS http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
PROGRAMMING PARADIGMS http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
PROCEDURE-ORIENTED PROGRAMMING
PROCEDURE-ORIENTED PROGRAMMING
PROCEDURE-ORIENTED PROGRAMMING 1/6) Emphasis is on doing things (algorithms). 2/6) Large programs are divided into smaller programs known as functions. 3/6) Most of the functions share global data.
PROCEDURE-ORIENTED PROGRAMMING 4/6) Data are more open around the system from function to function. 5/6) Functions transform data from one form to another. 6/6) Employs top-down approach in program design.
OBJECT-ORIENTED PROGRAMMING
OBJECT-ORIENTED PROGRAMMING The data of an object can be accessed only by the functions associated with that object. Functions of one object can access the functions of other objects.
OBJECT-ORIENTED PROGRAMMING 1/8) Emphasis is on data rather than procedures or algorithms. 2/8) Programs are divided into what are known as objects. 3/8) Data structures are designed such that they characterize the objects. 4/8) Functions that operate on the data are tied together in the data structure.
OBJECT-ORIENTED PROGRAMMING 5/8) Data is hidden and cannot be accessed by external functions. 6/8) Objects may communicate with each other through functions. 7/8) New data and functions can be easily added whenever necessary. 8/8) Follows bottom-up approach in program design.
OBJECT-ORIENTED PROGRAMMING Benefits of OOP: 1/8) Through inheritance, we can eliminate redundant code and extend the use of existing classes which is not possible in procedure-oriented approach. 2/8) We can build programs from the standard working modules that communicate with one another, rather than having to start writing the code from scratch which happens procedure-oriented approach. This leads to saving of development time and higher productivity.
OBJECT-ORIENTED PROGRAMMING Benefits of OOP: 3/8) The principle of data hiding helps the programmer to build secure programs that cannot be invaded by code in other parts of the program. 4/8) It is possible to have multiple instances of object to co-exist without any interference.
OBJECT-ORIENTED PROGRAMMING Benefits of OOP: 5/8) It is possible to map objects in the problem domain to those in the program. 6/8) It is easy to partition the work in a project based on objects .
OBJECT-ORIENTED PROGRAMMING Benefits of OOP: 7/8) Object oriented systems can be easily upgraded from small to large systems. 8/8) Software complexity can be easily managed.
OBJECT-ORIENTED PROGRAMMING OOP first appeared in the Simula programming language in the 1960s.
OBJECT-ORIENTED PROGRAMMING • Simula was invented by Ole-Johan Dahl and Kristen Nygaard, which influenced C++, Java, and C# • professors Dahl and Nygaard received two very prestigious prizes: 1.) von Neumann medal 2.) Turing prize (the Nobel prize of computer science)
OBJECT-ORIENTED PROGRAMMING Aspects of OOP
CLASSES • A class is just like a blueprint of a house. • An object is the actual house built from that blueprint. • You could then create numerous houses/objects from a single blueprint.
CLASSES Two main components of an Object/Class (these terms are synonymous/equivalent): • Attributes & Behaviors • Variables & Functions • Fields & Methods • Data Members & Member Functions
CLASSES INSTANTIATION
CLASSES
THE TIME CLASS | Time1.py
THE TIME CLASS | Time1.py
THE TIME CLASS | Time1.py
THE TIME CLASS
THE TIME CLASS
THE TIME CLASS
THE TIME CLASS
THE TIME CLASS
SPECIAL ATTRIBUTES Classes
SPECIAL ATTRIBUTES Classes
SPECIAL ATTRIBUTES Objects
SPECIAL ATTRIBUTES Objects
OBJECT ATTRIBUTES | Set and Get
OBJECT ATTRIBUTES | Protected Var
OBJECT ATTRIBUTES | Protected Var
OBJECT ATTRIBUTES | Set and Get
OBJECT ATTRIBUTES | Chaining Chaining Comparisons in Other Languages Concise Equivalent in Python
OBJECT ATTRIBUTES | Chaining Chaining Comparisons
OBJECT ATTRIBUTES | Set and Get
OBJECT ATTRIBUTES | Set and Get
OBJECT ATTRIBUTES | Set and Get
OBJECT ATTRIBUTES | Set and Get
OBJECT ATTRIBUTES | Set and Get
OBJECT ATTRIBUTES | Set and Get
OBJECT ATTRIBUTES | Set and Get Raising Exceptions
OBJECT ATTRIBUTES | Set and Get
OBJECT ATTRIBUTES | Set and Get
OBJECT ATTRIBUTES | Set and Get
OBJECT ATTRIBUTES | Set and Get
OBJECT ATTRIBUTES | Set and Get
OBJECT ATTRIBUTES | Private Var
OBJECT ATTRIBUTES | Private Var
OBJECT ATTRIBUTES | Private Var
CONSTRUCTORS | Default Args
CONSTRUCTORS | Default Args
CONSTRUCTORS | Default Args
CONSTRUCTORS | Default Args
CONSTRUCTORS | Default Args
CONSTRUCTORS | Default Args
CONSTRUCTORS | Default Args
CONSTRUCTORS | Default Args
CONSTRUCTORS | Default Args
DESTRUCTORS • method called __del__ • executes when the last reference to an object is deleted or goes out of scope. • specifies no parameters other than self • returns None.
DESTRUCTORS
CLASS ATTRIBUTES Class Attributes are used to track the state of all objects/instances of a given class. They are also known as Static Variables There are also Class Behaviors (Static Methods), methods that involve all objects/instances of a given class). In Java, Static Methods are used heavily by the Math class so that you could execute methods without creating an object of the Math class
CLASS ATTRIBUTES
CLASS ATTRIBUTES Lists are not restricted to homogeneous data types. Python programmers typically use lists to store sequences of homogeneous values (values of the same data type)
CLASS ATTRIBUTES Lists are not restricted to homogeneous data types. Python programmers typically use lists to store sequences of homogeneous values (values of the same data type)
CLASS ATTRIBUTES
COMPOSITION • Objects usually have attributes of basic/primitive data types (string, integers, boolean, etc) • Composition: when objects whose attributes are themselves references to objects of other classes
COMPOSITION note the gayagaya() method and the tao1.gayagaya(tao2) statement
COMPOSITION
COMPOSITION
COMPOSITION
COMPOSITION
COMPOSITION
REFERENCES  Deitel, Deitel, Liperi, and Wiedermann - Python: How to Program (2001).  Disclaimer: Most of the images/information used here have no proper source citation, and I do not claim ownership of these either. I don’t want to reinvent the wheel, and I just want to reuse and reintegrate materials that I think are useful or cool, then present them in another light, form, or perspective. Moreover, the images/information here are mainly used for illustration/educational purposes only, in the spirit of openness of data, spreading light, and empowering people with knowledge. 

Python Programming - VI. Classes and Objects