From 77c45789f309f3c0d3e826f86e434811c040fb8a Mon Sep 17 00:00:00 2001 From: Abhinav Upadhyay Date: Sun, 21 Sep 2025 11:28:45 +0530 Subject: [PATCH] Avoid using a mutable object as a default parameter value Using a mutable object, such as `[]` as the default value of a function parameter is an anti-pattern in Python because the same object is shared across all calls. Even though in this case the `__init__` method was simply iterating over the list, it is better to be safe. --- graph.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/graph.py b/graph.py index 42a6402..5c2d187 100644 --- a/graph.py +++ b/graph.py @@ -27,7 +27,7 @@ def __eq__(self, other): ################################################################################ class DirectedAdjList: - def __init__(self, edge_list=[], vertex_label=None, + def __init__(self, edge_list=None, vertex_label=None, vertex_text=None, edge_label=None, edge_color=None): self.out = {} @@ -42,6 +42,8 @@ def __init__(self, edge_list=[], vertex_label=None, self.edge_label = edge_label self.edge_color = edge_color self.edge_set = set() + if not edge_list: + return for e in edge_list: if isinstance(e, Edge): self.add_edge(e.source, e.target)