this post was submitted on 22 Jul 2025
17 points (100.0% liked)

Python

7340 readers
46 users here now

Welcome to the Python community on the programming.dev Lemmy instance!

πŸ“… Events

PastNovember 2023

October 2023

July 2023

August 2023

September 2023

🐍 Python project:
πŸ’“ Python Community:
✨ Python Ecosystem:
🌌 Fediverse
Communities
Projects
Feeds

founded 2 years ago
MODERATORS
 

Hi, I recently realised one can use immutable default arguments to avoid a chain of:

def append_to(element, to=None):
    if to is None:
        to = []

at the beginning of each function with default argument for set, list, or dict.

you are viewing a single comment's thread
view the rest of the comments
[–] Narann@jlai.lu 4 points 1 week ago (7 children)

This is the way you're supposed to write it in Python.

It is something you get used to, yet I think it's sad.

[–] m_f@discuss.online 5 points 1 week ago (5 children)

You can use mutable default arguments now with a new syntax:

https://peps.python.org/pep-0671/

def bisect_right(a, x, lo=0, hi=>len(a), *, key=None):
def connect(timeout=>default_timeout):
def add_item(item, target=>[]):
def format_time(fmt, time_t=>time.time()):
load more comments (5 replies)