PyNDN: Bug fixing and API unification
diff --git a/PyNDN/Interest.py b/PyNDN/Interest.py
index 571bc36..b4b5b9a 100644
--- a/PyNDN/Interest.py
+++ b/PyNDN/Interest.py
@@ -28,9 +28,9 @@
                  name = None, scope = None, interestLifetime = None,
                  interest = None):
         if interest:
-            if type (interest) is Interest:
+            if isinstance (interest, Interest):
                 self._interest = interest._interest
-            elif type (interest) is ns.ndnSIM.ndn.Interest:
+            elif isinstance (interest, ns.ndnSIM.ndn.Interest):
                 self._interest = interest
             else:
                 raise TypeError ("Invalid type supplied for 'interest' parameter [%s]" % type (interest))
@@ -66,27 +66,27 @@
             return object.__setattr__ (self, name, value)
 
         elif name == "name":
-            if not value:
+            if value is None:
                 return self._interest.SetName (ns.ndnSIM.ndn.Name ())
-            elif type (value) is Name:
+            elif isinstance (value, Name):
                 return self._interest.SetName (value._name)
-            elif type (value) is ns.ndnSIM.ndn.Name:
+            elif isinstance (value, ns.ndnSIM.ndn.Name):
                 return self._interest.SetName (value)
-            elif type (value) is str:
+            elif isinstance (value, str):
                 return self._interest.SetName (ns.ndnSIM.ndn.Name (value))
             else:
                 raise ValueError ("Invalid name parameter")
         elif name == "scope":
-            if not value:
+            if value is None:
                 return self._interest.SetScope (-1)
-            elif type (value) is int:
+            elif isinstance (value, int):
                 return self._interest.SetScope (value)
             else:
                 raise ValueError ("Scope parameter should be int, [%s] supplied" % type (value))
         elif name == "interestLifetime":
-            if not value:
+            if value is None:
                 return self._interest.SetInterestLifetime (ns.core.Time ())
-            elif type (value) is float or type (value) is int:
+            elif isinstance (value, float) or isinstance (value, int):
                 return self._interest.SetInterestLifetime (ns.core.Seconds (value))
             else:
                 raise ValueError ("interestLifetime parameter should be fload or int, [%s] supplied" % type (value))