testing一个类是否从另一个类inheritance

这个问题比Django相关的Python更多。 我想testing写这个函数的testing,我正在使用我设置的字段dynamic获取Django表单。

def quiz_form_factory(question): properties = { 'question': forms.IntegerField(widget=forms.HiddenInput, initial=question.id), 'answers': forms.ModelChoiceField(queryset=question.answers_set) } return type('QuizForm', (forms.Form,), properties) 

我想testing一下,QuizForm类返回是从forms.Forminheritance的。

就像是:

 self.assertTrue(QuizForm isinheritedfrom forms.Form) # I know this does not exist 

有没有办法做到这一点?

使用issubclass(myclass,parentclass) 。

在你的情况下:

 self.assertTrue( issubclass(QuizForm, forms.Form) ) 

所有你需要做的是使用issubclass

 self.assertTrue(issubclass(QuizForm, forms.Form)) 

使用内置的issubclassfunction。 例如

 issubclass(QuizForm, forms.Form) 

它返回一个bool所以你可以直接在self.assertTrue()使用它

查看内置方法的issubclass(subclass,baseclass) 。 它应该正是你所需要的。