Python Tutorial — Learn Python Step by Step
Key takeaway: Master Python programming from scratch — variables, loops, functions, OOP, file handling, and libraries — with clear human-readable explanations and runnable code examples.
Python Inheritance
Inheritance lets a class (child) reuse and extend the behavior of another class (parent). The child inherits all attributes and methods, and can override or add new ones.
Basic Inheritance
# Parent (base) class
class Animal:
def __init__(self, name, sound):
self.name = name
self.sound = sound
def speak(self):
return f"{self.name} says {self.sound}!"
def __str__(self):
return f"Animal({self.name})"
# Child (derived) class — inherits from Animal
class Dog(Animal):
def __init__(self, name, breed):
# Call parent constructor
super().__init__(name, sound="Woof")
self.breed = breed # new attribute
def fetch(self, item):
return f"{self.name} fetches the {item}!"
class Cat(Animal):
def __init__(self, name, indoor=True):
super().__init__(name, sound="Meow")
self.indoor = indoor
def purr(self):
return f"{self.name} is purring..."
# Usage
dog = Dog("Rex", "Labrador")
cat = Cat("Whiskers")
print(dog.speak()) # Rex says Woof! (inherited method)
print(dog.fetch("ball")) # Rex fetches the ball! (new method)
print(cat.speak()) # Whiskers says Meow!
print(cat.purr()) # Whiskers is purring...Method Overriding
# Child classes can override parent methods
class Shape:
def __init__(self, color="black"):
self.color = color
def area(self):
raise NotImplementedError("Subclasses must implement area()")
def describe(self):
return f"{self.color} {type(self).__name__} with area {self.area():.2f}"
class Circle(Shape):
def __init__(self, radius, color="red"):
super().__init__(color)
self.radius = radius
def area(self): # override parent method
import math
return math.pi * self.radius ** 2
class Rectangle(Shape):
def __init__(self, width, height, color="blue"):
super().__init__(color)
self.width = width
self.height = height
def area(self): # override parent method
return self.width * self.height
# Usage
shapes = [Circle(5), Rectangle(3, 4, "green"), Circle(2, "yellow")]
for shape in shapes:
print(shape.describe())
# red Circle with area 78.54
# green Rectangle with area 12.00
# yellow Circle with area 12.57super() — Calling Parent Methods
# super() lets you call the parent version of a method
class Employee:
def __init__(self, name, salary):
self.name = name
self.salary = salary
def get_info(self):
return f"{self.name} - ${self.salary:,}"
class Manager(Employee):
def __init__(self, name, salary, department):
super().__init__(name, salary) # call parent __init__
self.department = department
self.reports = []
def add_report(self, employee):
self.reports.append(employee)
def get_info(self):
# Extend parent method instead of replacing it
base_info = super().get_info()
return f"{base_info} | Manages {self.department} ({len(self.reports)} reports)"
emp = Employee("Alice", 75000)
mgr = Manager("Bob", 95000, "Engineering")
mgr.add_report(emp)
print(emp.get_info()) # Alice - $75,000
print(mgr.get_info()) # Bob - $95,000 | Manages Engineering (1 reports)isinstance() and issubclass()
# Check type relationships
print(isinstance(dog, Dog)) # True
print(isinstance(dog, Animal)) # True (Dog inherits Animal)
print(isinstance(cat, Dog)) # False
print(issubclass(Dog, Animal)) # True
print(issubclass(Animal, Dog)) # False
# Practical: handle different types
def process(obj):
if isinstance(obj, Manager):
print(f"Manager: {obj.department}")
elif isinstance(obj, Employee):
print(f"Employee: {obj.name}")
else:
print("Unknown type")- Child classes inherit all methods and attributes from the parent class.
- Use
super().__init__()to call the parent constructor and avoid duplicating code. - Override methods in child classes to customize behavior while keeping the same interface.
- Use
isinstance()to check if an object is an instance of a class or its subclasses. - Raise
NotImplementedErrorin base class methods that subclasses must implement.
Python Programming Tutorial — Learn Python in a practical, step-by-step way. According to the official Python documentation, Python emphasizes code readability and simplicity, making it ideal for beginners.
Related tools: Python Online Compiler | Python Examples | JavaScript Tutorial | Java Tutorial
Python Career & Learning Guide
Python is the world's most popular programming language for beginners, data science, AI/ML, web development, and automation. This tutorial teaches Python step-by-step with clear explanations and runnable code examples in our free Python Compiler.
Why Learn Python in 2026?
- #1 Most Popular Language: Ranked first on TIOBE, Stack Overflow, and GitHub.
- AI and Data Science: The primary language for machine learning (TensorFlow, PyTorch, scikit-learn) and data analysis (Pandas, NumPy).
- Web Development: Django and Flask power scalable backends at companies like Instagram and Spotify.
- Automation & Scripting: Automate files, emails, web scraping, and data processing in minutes.
Python vs Other Languages
| Feature | Python | Java | JavaScript | C++ |
|---|---|---|---|---|
| Syntax | Very clean, readable | Verbose | Moderate | Complex |
| Typing | Dynamic, strong | Static, strong | Dynamic, weak | Static, strong |
| Best For | AI/ML, Data, Web | Enterprise, Android | Web Frontend/Backend | Systems, Games |
| Learning Time | 2–4 weeks basics | 4–6 weeks basics | 3–4 weeks basics | 8–12 weeks basics |
Frequently Asked Questions
Do I need prior programming experience to learn Python?
No! Python is specifically designed to be beginner-friendly. This tutorial starts from zero and builds up gradually.
Which Python version should I use?
Python 3.10+ is recommended. All examples in this tutorial use Python 3 syntax.
Is this Python tutorial completely free?
Yes, 100% free with no registration or sign-up required. Access all lessons and code examples anytime.