Use immutable arg rather mutable arg

Passing mutable objects as default args is a known Python pitfall.
We'd better avoid this. This commit changes mutable default args with
None.

Change-Id: I7817c92069d32d1926e185ca0d0ab14e738b8b3d
This commit is contained in:
liuqing
2014-07-01 16:16:49 +08:00
parent b4906c855f
commit 31a7ae54f6
3 changed files with 8 additions and 4 deletions

View File

@@ -22,7 +22,10 @@ places where actual behavior differs from the spec.
from __future__ import print_function
def assert_has_keys(dict, required=[], optional=[]):
def assert_has_keys(dict, required=None, optional=None):
required = required or []
optional = optional or []
for k in required:
try:
assert k in dict

View File

@@ -79,8 +79,8 @@ class ShellTest(utils.TestCase):
# mimic the result of argparse's parse_args() method
class Arguments:
def __init__(self, metadata=[]):
self.metadata = metadata
def __init__(self, metadata=None):
self.metadata = metadata or []
inputs = [
([], {}),

View File

@@ -154,7 +154,8 @@ def _print(pt, order):
print(strutils.safe_encode(pt.get_string(sortby=order)))
def print_list(objs, fields, formatters={}, order_by=None):
def print_list(objs, fields, formatters=None, order_by=None):
formatters = formatters or {}
mixed_case_fields = ['serverId']
pt = prettytable.PrettyTable([f for f in fields], caching=False)
pt.aligns = ['l' for f in fields]