mirror of https://gerrit.osmocom.org/pysim
pySim/filesystem: fix mutable default list/dict arguments
Having lists and dictionaries as default argument values is a bad idea, because the same instance of list/dict will be used by all objects instantiated using such constructor: def appendItem(itemName, itemList=[]): itemList.append(itemName) return itemList print(appendItem('notebook')) print(appendItem('pencil')) print(appendItem('eraser')) Output: ['notebook'] ['notebook', 'pencil'] ['notebook', 'pencil', 'eraser'] Change-Id: I83d718ff9c3ff6aef47930f38d7f50424f9b880f
This commit is contained in:
parent
24f7bd3ab5
commit
98f872bed1
|
@ -706,10 +706,10 @@ def interpret_sw(sw_data, sw):
|
|||
class CardApplication(object):
|
||||
"""A card application is represented by an ADF (with contained hierarchy) and optionally
|
||||
some SW definitions."""
|
||||
def __init__(self, name, adf=None, sw={}):
|
||||
def __init__(self, name, adf=None, sw=None):
|
||||
self.name = name
|
||||
self.adf = adf
|
||||
self.sw = sw
|
||||
self.sw = sw or dict()
|
||||
|
||||
def __str__(self):
|
||||
return "APP(%s)" % (self.name)
|
||||
|
@ -723,13 +723,13 @@ class CardProfile(object):
|
|||
"""A Card Profile describes a card, it's filessystem hierarchy, an [initial] list of
|
||||
applications as well as profile-specific SW and shell commands. Every card has
|
||||
one card profile, but there may be multiple applications within that profile."""
|
||||
def __init__(self, name, desc=None, files_in_mf=[], sw=[], applications=[], shell_cmdsets=[]):
|
||||
def __init__(self, name, **kw):
|
||||
self.name = name
|
||||
self.desc = desc
|
||||
self.files_in_mf = files_in_mf
|
||||
self.sw = sw
|
||||
self.applications = applications
|
||||
self.shell_cmdsets = shell_cmdsets
|
||||
self.desc = kw.get("desc", None)
|
||||
self.files_in_mf = kw.get("files_in_mf", [])
|
||||
self.sw = kw.get("sw", [])
|
||||
self.applications = kw.get("applications", [])
|
||||
self.shell_cmdsets = kw.get("shell_cmdsets", [])
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
|
Loading…
Reference in New Issue