Ridiculous Ways to Define Functions in Python | Issue #56


Hi there,

We all use def to define functions in Python. But did you know there are at least 7 other ways to do it? Some of them are useful. Some are questionable. And the last one is so ridiculous, it might crash your interpreter.

In this week’s video, I walk through each method, explain how it works, why you should use it (or not), and what it teaches us about how Python works under the hood.

This was a really interesting topic to explore. I learned a lot from it and I hope you will too.

Happy coding!

Cheers,

Arjan

# News

It’s My Birthday Week! 🎉

That’s right: I’m officially getting deprecated… but still fully functional! On June 8th, I’m turning 48, and to celebrate another year under the sun, I’m giving you a special gift: 20% off all ArjanCodes courses (excluding the Professional version).

It’s the perfect performance boost for your coding skills.

To claim your 20% discount, use coupon code BIRTHDAY2025 at checkout. This offer is available until June 8th at midnight!

Debugging f-strings Is Fun

Here’s something weird I came across this week. Your str(obj) call works just fine… but plug that same object into an f-string and boom — you get a TypeError.

Turns out, f-strings don't use str() under the hood — they use format(). And in some edge cases (like with proxy objects or sandboxed environments), that subtle difference matters.

Brandon Chinn wrote a great deep dive on this exact problem. Check it out here.

It’s a great reminder that Python is usually friendly, until it’s not.

# Community

How Do You Learn Software Architecture?

This week someone asked a great question in my Discord server: “I can write code, but how do I get better at designing it?”

That kicked off a really thoughtful thread about learning architecture step by step, dealing with anxiety while coding, and figuring out how to make your code easier to change later. A few great book recommendations came up too.

If you ever feel stuck trying to structure your code or scale your skills, you’re not alone, and the Discord is a great place to talk about it.

👉 Join the community now to read the discussion and share your thoughts.


Do you enjoy my content on YouTube and would you like to dive in deeper?

🚀 Check out my online courses

My courses have helped thousands of developers take the next step in their careers. Check out these courses to help grow your skills and become a senior developer:

🔧 Need help with a complex codebase?

If your team is struggling with tech debt, unclear architecture, or cloud costs that keep creeping up, my team and I can help. We don’t just review, we get in and fix things. We’re only working with a few companies at a time to stay focused, so if it sounds like a fit:

Unsubscribe | Send by ArjanCodes

Wolvenplein 25, Utrecht, UT 3512 CK

The Friday Loop

Every Friday, you'll get a recap of the most important and exciting Python and coding news. The Friday Loop also keeps everyone posted on new ArjanCodes courses and any limited offers coming up.

Read more from The Friday Loop

Hi there, Functional programming in Python can be elegant… but not always. ⚠️ In this week’s video, I walk through four common scenarios where replacing for loops with map() and filter() actually leads to worse code. Not just less readable—but also harder to debug, more error-prone, and sometimes even misleading. We’ll dive into: Exception handling that becomes a mess inside a lambda Side effects (like writing to files) that violate functional principles Nested logic that turns into...

Hi there, What’s in my stack? Python, TypeScript… and one wooden robot. 🤖 You might not know this, but before ArjanCodes was a channel, it was a pile of ideas held together by duct tape and Google Docs. Now? We’ve got a full ecosystem: static websites on Astro, backend automations in Python, our own SDK, and a business portal for team licenses—all deployed with GitHub Actions and a sprinkle of serverless. ⚡ In this week’s video, I give you a behind-the-scenes tour of our real tech stack—no...

Hi there, You ever look at some Python code and think, “Wait… why did we do it like this?” This week’s video is all about the Python anti-patterns that sneak into our codebases—sometimes looking clever, sometimes just copied from bad tutorials. But they can seriously hurt long-term maintainability. 🚨 I walk through 10 real-world examples, from using exceptions as control flow to awkward class structures, and even show how hardcoding UI strings can make your app a localization nightmare. Have...