Browse Source

Do not mutate default arguments

In this case, it looks rather harmless (since the conditions for --restrict-filenames should not change while a process is running), but just to be sure.
This also simplifies the interface for callers, who can just pass in the idiomatic None for "I don't care, whatever is the default".
Philipp Hagemeister 11 years ago
parent
commit
a3fb4675fb
1 changed files with 2 additions and 2 deletions
  1. 2 2
      youtube_dl/YoutubeDL.py

+ 2 - 2
youtube_dl/YoutubeDL.py

@@ -146,7 +146,7 @@ class YoutubeDL(object):
     _num_downloads = None
     _num_downloads = None
     _screen_file = None
     _screen_file = None
 
 
-    def __init__(self, params={}):
+    def __init__(self, params=None):
         """Create a FileDownloader object with the given options."""
         """Create a FileDownloader object with the given options."""
         self._ies = []
         self._ies = []
         self._ies_instances = {}
         self._ies_instances = {}
@@ -155,7 +155,7 @@ class YoutubeDL(object):
         self._download_retcode = 0
         self._download_retcode = 0
         self._num_downloads = 0
         self._num_downloads = 0
         self._screen_file = [sys.stdout, sys.stderr][params.get('logtostderr', False)]
         self._screen_file = [sys.stdout, sys.stderr][params.get('logtostderr', False)]
-        self.params = params
+        self.params = {} if params is None else params
 
 
         if (sys.version_info >= (3,) and sys.platform != 'win32' and
         if (sys.version_info >= (3,) and sys.platform != 'win32' and
                 sys.getfilesystemencoding() in ['ascii', 'ANSI_X3.4-1968']
                 sys.getfilesystemencoding() in ['ascii', 'ANSI_X3.4-1968']