针对类中的错误输入值引发TypeError异常

时间:2014-09-23 00:19:47

标签: python class exception-handling

我正在尝试编写一个class,我希望如果该类的初始输入值不服从特定类型,则会引发异常。例如,我会使用except TypeError来返回错误。我不知道应该怎么做。我第一次尝试编写class如下:

class calibration(object):
      def __init__(self, inputs, outputs, calibration_info, interpolations=2):
          try:
            self.inputs=inputs
          except TypeError

          self.outputs=outputs
          self.cal_info=calibration_info
          self.interpol=interpolations

我希望如果inputs值不是字符串,那么它会引发错误消息。我很感激你的帮助。

1 个答案:

答案 0 :(得分:7)

它在2.x和3.x之间有点不同,但是如果您不满意,请使用isinstance来计算类型然后引发异常。

class calibration(object):
    def __init__(self, inputs, outputs, calibration_info, interpolations=2):
        if not isinstance(inputs, basestring):
            raise TypeError("input must be a string")

Python2区分ascii和unicode字符串 - " basestring"两个人交谈。在python3中,只有unicode字符串,你使用' str'代替。