[libvirt] [PATCHv2 12/25] WmiClass: Don't share "versions" between instances

Radostin Stoyanov rstoyanov1 at gmail.com
Tue Mar 20 06:48:55 UTC 2018


Lists in Python are mutable and when used as a default value of a
parameter for class constructor, its value will be shared between
all class instances.

Example:

	class Test:
	    def __init__(self, mylist=[]):
	        self.mylist = mylist

	A = Test()
	B = Test()
	A.mylist.append("mylist from instance A")
	print(B.mylist) # Will print ['mylist from instance A']

Signed-off-by: Radostin Stoyanov <rstoyanov1 at gmail.com>
---
 src/hyperv/hyperv_wmi_generator.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/hyperv/hyperv_wmi_generator.py b/src/hyperv/hyperv_wmi_generator.py
index 6e98f0a89..0dcd9e438 100755
--- a/src/hyperv/hyperv_wmi_generator.py
+++ b/src/hyperv/hyperv_wmi_generator.py
@@ -44,9 +44,9 @@ class WmiClass:
     to.
     """
 
-    def __init__(self, name, versions = []):
+    def __init__(self, name, versions=None):
         self.name = name
-        self.versions = versions
+        self.versions = versions if versions else list()
         self.common = None
 
 
-- 
2.14.3




More information about the libvir-list mailing list