python programming - vi. classes and objects

Post on 15-Jan-2015

963 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

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

top related