mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-04-02 05:47:12 +03:00
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:
@@ -706,10 +706,10 @@ def interpret_sw(sw_data, sw):
|
|||||||
class CardApplication(object):
|
class CardApplication(object):
|
||||||
"""A card application is represented by an ADF (with contained hierarchy) and optionally
|
"""A card application is represented by an ADF (with contained hierarchy) and optionally
|
||||||
some SW definitions."""
|
some SW definitions."""
|
||||||
def __init__(self, name, adf=None, sw={}):
|
def __init__(self, name, adf=None, sw=None):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.adf = adf
|
self.adf = adf
|
||||||
self.sw = sw
|
self.sw = sw or dict()
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "APP(%s)" % (self.name)
|
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
|
"""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
|
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."""
|
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.name = name
|
||||||
self.desc = desc
|
self.desc = kw.get("desc", None)
|
||||||
self.files_in_mf = files_in_mf
|
self.files_in_mf = kw.get("files_in_mf", [])
|
||||||
self.sw = sw
|
self.sw = kw.get("sw", [])
|
||||||
self.applications = applications
|
self.applications = kw.get("applications", [])
|
||||||
self.shell_cmdsets = shell_cmdsets
|
self.shell_cmdsets = kw.get("shell_cmdsets", [])
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|||||||
Reference in New Issue
Block a user