Classes and Objects
Object-oriented programming with classes, inheritance, and methods
#classes #oop #objects #inheritance
Classes and Objects
Define custom data types with classes in Python.
Basic Class
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def greet(self):
return f"Hello, I'm {self.name} and I'm {self.age} years old"
# Create instance
person = Person("Alice", 30)
print(person.greet()) # Hello, I'm Alice and I'm 30 years old
Class with Properties
class Circle:
def __init__(self, radius):
self._radius = radius
@property
def radius(self):
return self._radius
@radius.setter
def radius(self, value):
if value < 0:
raise ValueError("Radius cannot be negative")
self._radius = value
@property
def area(self):
return 3.14159 * self._radius ** 2
circle = Circle(5)
print(circle.area) # 78.53975
circle.radius = 10
print(circle.area) # 314.159
Inheritance
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def speak(self):
return f"{self.name} says Woof!"
class Cat(Animal):
def speak(self):
return f"{self.name} says Meow!"
dog = Dog("Buddy")
cat = Cat("Whiskers")
print(dog.speak()) # Buddy says Woof!
print(cat.speak()) # Whiskers says Meow!
Class Methods and Static Methods
class MathUtils:
PI = 3.14159
@classmethod
def circle_area(cls, radius):
return cls.PI * radius ** 2
@staticmethod
def add(a, b):
return a + b
print(MathUtils.circle_area(5)) # 78.53975
print(MathUtils.add(10, 20)) # 30
Dataclasses
from dataclasses import dataclass
@dataclass
class Product:
name: str
price: float
quantity: int = 0
def total_cost(self):
return self.price * self.quantity
product = Product("Laptop", 999.99, 2)
print(product) # Product(name='Laptop', price=999.99, quantity=2)
print(product.total_cost()) # 1999.98
Discover another handy tool from EditPDF.pro