Issue #17435: Don't use mutable default values in Timer.
Patch by Denver Coneybeare with some test modifications by me.
diff --git a/Doc/library/threading.rst b/Doc/library/threading.rst
index f697cbb..1bcf0a2 100644
--- a/Doc/library/threading.rst
+++ b/Doc/library/threading.rst
@@ -839,10 +839,12 @@
t.start() # after 30 seconds, "hello, world" will be printed
-.. class:: Timer(interval, function, args=[], kwargs={})
+.. class:: Timer(interval, function, args=None, kwargs=None)
Create a timer that will run *function* with arguments *args* and keyword
arguments *kwargs*, after *interval* seconds have passed.
+ If *args* is None (the default) then an empty list will be used.
+ If *kwargs* is None (the default) then an empty dict will be used.
.. versionchanged:: 3.3
changed from a factory function to a class.