Minimum Class Template
class Student:
def __init__(self, name, score):
self.name = name
self.score = score
def is_pass(self):
return self.score >= 50
def __str__(self):
return f"{self.name}: {self.score}"
Pattern 1 โ Counter Object
class Counter:
def __init__(self):
self.count = 0
def inc(self):
self.count += 1
def reset(self):
self.count = 0
Pattern 2 โ Bank Account
class Account:
def __init__(self, balance=0):
self.balance = balance
def deposit(self, amt):
self.balance += amt
def withdraw(self, amt):
if amt > self.balance: return False
self.balance -= amt
return True
Pattern 3 โ Inheritance
class SavingsAccount(Account):
def __init__(self, balance=0, rate=0.02):
super().__init__(balance)
self.rate = rate
def apply_interest(self):
self.balance *= 1 + self.rate
Pattern 4 โ Class Attribute vs Instance
class Robot:
count = 0 # shared across instances
def __init__(self):
Robot.count += 1
Pattern 5 โ Composition
class Address:
def __init__(self, street, city):
self.street, self.city = street, city
class Person:
def __init__(self, name, address):
self.name = name
self.address = address
Pattern 6 โ Polymorphism
class Shape:
def area(self): raise NotImplementedError
class Circle(Shape):
def __init__(self, r): self.r = r
def area(self): return 3.14 * self.r ** 2
class Square(Shape):
def __init__(self, s): self.s = s
def area(self): return self.s * self.s
Pattern 7 โ Method Chaining
class Builder:
def __init__(self): self.parts = []
def add(self, p):
self.parts.append(p)
return self
b = Builder().add("engine").add("wheels").add("seats")
Practise this on PyForm โ free
PyForm runs Python in your browser with an AI tutor trained for HKDSE. No install, no credit card.
Open PyForm โ