python - 为类中不正确的输入值引发 TypeError 异常

标签 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 值不是字符串,那么它会引发错误消息。如果有任何帮助,我将不胜感激。

最佳答案

它在 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' 代替。

关于python - 为类中不正确的输入值引发 TypeError 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25985007/

相关文章:

python - 如何找到两条线段的交点?

Python替换函数[替换一次]

Python:如何使用 16 位 channel (例如 48 RGB)保存图像?

java - 捕捉 EmptyStackException 与 Testing is Stack is empty

java - 为什么在尝试编写 catch 时必须有抛出异常的可能性是强制性的?

python - 将参数传递给扭曲的工厂以传递给 session

C++使用模板中的变量初始化类中的对象

html - 有没有办法在html中修改css div的属性

c++ - 无效使用 void 表达式,怎么办?

java - catch语句的顺序?