Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
OOPs in Python
Rating: 4.2 out of 5(19 ratings)
1,034 students

OOPs in Python

Mastering Object-Oriented Programming in Python: From Fundamentals to Advanced Design Patterns
Last updated 10/2024
English

What you'll learn

  • Core OOP Concepts: Classes, Objects, Methods
  • Inheritance: Create class hierarchies
  • Polymorphism: Implement flexible behaviors
  • Encapsulation & Abstraction: Hide details
  • Magic Methods: Customize class operations
  • Multiple Inheritance: Use complex class structures
  • Design Patterns: Clean and maintainable code
  • Dynamic Classes: Modify classes at runtime
  • Real-World Projects: Practical OOP applications
  • Debug & Optimize: Improve performance and code

Course content

3 sections30 lectures4h 42m total length
  • Introduction to Object Oriented Programming (OOP) in Python25:20
  • Class vs Object in OOP12:47
  • Writing our first Class in OOP38:17

    Learn to write your first Python class in object oriented programming by building a banking ATM class with a constructor, data properties, and methods for pin, balance check, and withdraw.

  • Methods vs Functions1:57

    Clarify the difference between methods and functions in Python, showing methods inside classes use self, while functions exist outside. The lecture emphasizes industry terminology and includes examples.

  • Class Diagram in OOP4:00

    Learn to create a class diagram for an OOP Python class, detailing the class name, data properties, and methods, with plus and minus notation for public and private members.

  • Magic Methods/Dunder Methods in OOP4:57
  • Concept of self in OOP5:05

    Explain the concept of self in oop by using the self keyword to reference the current class instance and access its attributes and methods within the atm machine class.

  • How object access attributes in OOP7:13

    Learn how a Python class accesses attributes with self, uses a greeting for India's Namaste or a generic Hello, and shows how to add or access attributes like age dynamically.

  • Reference Variable in OOP3:27

    Explore reference variables in Python OOP, showing how objects p and q share the same memory location, how assigning one affects the other, and why identity matters for debugging.

  • Pass by reference in OOP3:48

    Demonstrates passing a class object by reference to a function in Python, returning and accessing its attributes via dot notation (name and gender) within oop.

  • Mutibility of Object in OOP2:51

    Explore how Python objects are mutable by modifying a class instance inside a function and observing the same memory id, and contrast lists, sets, and dictionaries with immutable strings.

  • What is instance variable in OOP5:08

    Demonstrate how instance variables store different data for each object in a single class, using a person example with name and country to show distinct object states.

  • Encapsulation in OOP25:00
  • getter & setter methods in OOP6:15
  • Collection of class objects in OOP2:00

    Store class objects in Python collections by placing instances in a list or dictionary, and iterate to access attributes like name and country.

  • Static Variables & Methods in OOP9:53

    Learn static variables and static methods in Python by enhancing an ATM class to generate unique customer IDs with a class variable, plus encapsulation with getters and setters.

  • Aggregation in OOP12:19
  • Aggregation class diagram in OOP4:11
  • Inheritance in OOP18:25
  • Inheritance class diagram in OOP1:35

    Learn to create inheritance class diagrams using the arrow symbol for inheritance, distinguish them from aggregation diamonds, and label data and method properties with plus and minus for access.

  • What gets Inherited8:04
  • Method Overriding in OOP2:31

    Explore method overriding in OOP by comparing parent and child class methods; see how the child method takes precedence and how it falls back to parent when no override exists.

  • Super Keyword in OOP4:21
  • Types of Inheritance in OOP7:57

    Explore the types of inheritance in OOP in Python, including single, multi-level, hierarchical, and multiple inheritance. See how parent and child classes share properties and methods through examples and diagrams.

  • Polymorphism in OOP5:51

    Explore polymorphism in OOP, covering method overriding, method overloading, and operator overloading, using the same function name with different signatures.

  • Abstraction in OOP9:14

Requirements

  • Basic Python Programming Knowledge
  • Understanding of Data Types & Variables
  • Familiarity with Functions and Loops
  • Experience with Python Syntax and IDEs
  • Problem-Solving and Logical Thinking
  • Basic Knowledge of File Handling in Python
  • Willingness to Learn OOP Concepts
  • Access to a Computer with Python Installed

Description

This course is designed to provide a comprehensive understanding of Object-Oriented Programming (OOP) in Python, focusing on building efficient, scalable, and reusable software components. It covers fundamental concepts such as classes, objects, inheritance, polymorphism, encapsulation, and abstraction, while also exploring advanced topics like magic methods, multiple inheritance, and dynamic class modifications.

Throughout the course, participants will start by learning the basics of OOP and progress to more complex aspects, including the implementation of design patterns that promote code modularity and maintainability. Each module includes hands-on coding exercises and real-world projects to reinforce key concepts, ensuring that learners can apply their knowledge in practical scenarios. Additionally, the course emphasizes best practices for structuring OOP code, debugging techniques, and performance optimization.

By the end of the program, students will have mastered the skills needed to develop complex applications and implement sophisticated OOP designs in Python. The curriculum is designed for both beginners who want to build a strong foundation in Python programming and experienced developers looking to enhance their understanding of software architecture. Upon completion, learners will have the confidence to apply OOP principles in a variety of software development environments, making this course ideal for anyone aiming to elevate their Python programming skills and pursue roles in software engineering or design.

With a focus on practical learning and real-world applications, this course is the perfect stepping stone for mastering OOP in Python and building a solid foundation for future software development projects.

Who this course is for:

  • Beginner Python Programmers seeking to learn OOP concepts.
  • Experienced Developers wanting to deepen OOP skills.
  • Students looking to enhance their programming foundations.
  • Software Engineers aiming to improve code modularity.
  • Data Scientists wanting to build reusable data models.
  • Tech Enthusiasts interested in software design principles.
  • Freelancers needing to write scalable applications.
  • Career Switchers exploring software development roles.