0
我有点麻烦检查如果瓦尔(对象)是类型字典。如果它的类型的字典不,比它会抛出一个错误做瓦尔(对象):如何检查变量(对象)是否是字典类型?
if type(vars(vars(self.j)['element'])) is dict: # exception gets thrown here if not a dictionary
'this is a dictionary'
你不能使用类型(增值经销商(对象))如果瓦尔(对象)没有字典。那么你如何检查vars(object)是否是一个冠词?
编辑:在回答下面的答案:
print type(vars(self.j)['element'])
print isinstance(vars(vars(self.j)['element']), dict) # this is a dict
print type(vars(self.j)['beverage'])
print isinstance(vars(vars(self.j)['beverage']), dict) # exception thrown because its not a dictionary
输出:
<class '__main__.Element2'>
True
<type 'str'>
print isinstance(vars(vars(self.j)['beverage']), dict)
TypeError: vars() argument must have __dict__ attribute
编辑:响应布鲁诺,我想要做这样的事情:
def are_elements_equal(self, first_element, second_element, msg=None):
for i in vars(first_element).keys():
if type(vars(vars(first_element)[i])) is dict:
self.are_elements_equal(vars(first_element)[i], vars(second_element)[i])
else:
self.assertEqual(vars(first_element)[i], vars(second_element)[i])
检查编辑。我试图回答你为什么要使用变量的问题(vars(obj)) – BUInvent
这里是我的完整代码,如果你想看看它:http://www.codesend.com/view/9515db7496c9b3d36fd49231a5684f08/ – BUInvent