TGViewer
Learn Python Coding Learn Python Coding @pythonre · 40.7K subscribers
Post #9839 1.89K
Do not violate the Single Responsibility Principle 🎯

A function should do one thing, and do it well.

This function does too much:

def calculate_final_total(
price: float,
quantity: int,
discount_rate: float,
tax_rate: float
) -> float:
# Calculate the subtotal
subtotal = price * quantity

# Apply the discount
discounted_amount = subtotal * (1 - discount_rate)

# Calculate the tax
final_total = discounted_amount * (1 + tax_rate)

return final_total


The problem here is that the calculation of the subtotal, discount, and tax are all combined into one function. Any change to one of these steps can affect the entire calculation.

It's better to break down the logic into smaller, more specialized functions:

def calculate_subtotal(price: float, quantity: int) -> float:
return price * quantity

def apply_discount(subtotal: float, discount: float) -> float:
return subtotal * (1 - discount)

def calculate_tax(amount: float, tax_rate: float) -> float:
return amount * (1 + tax_rate)


This is much better. ✅

Smaller functions with a single task are easier to test with unit tests because they have fewer dependencies and require less mocking.

Furthermore, isolated components are easier to reuse in different parts of the application or pipeline without bringing in unnecessary dependencies.

Therefore, keep your functions simple and focused.

One function – one responsibility. 📝

#Python #Coding #SoftwareDevelopment #CleanCode #Programming #BestPractices

✨ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
Telegram AI PYTHON 🌟 You’ve been invited to add the folder “AI PYTHON 🌟”, which includes 15 chats.
  • ❤ 6
More from @pythonre
  1. Oct 7, 2026A distinctive bot for subscribing to courses on the most popular educational platforms acr…
  2. Oct 7, 2026Python Lists: A Quick Reference 🐍 * Definition: Lists are ordered, mutable collections th…
  3. Oct 7, 2026📱 270 tools for Python developers The repository contains: 🫡 Linters and formatters; 🫡…
  4. Oct 7, 2026Hands On Python Data Science - Data Science Bootcamp Master Python for Data Science with R…
  5. Oct 6, 2026Post #9851
  6. Oct 6, 2026Python For Beginners Course In-Depth Python: A Comprehensive Introduction to Fundamental P…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →