View
964
Download
3
Category
Tags:
Preview:
DESCRIPTION
Citation preview
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
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.
REFERENCES
Recommended