我收到错误消息:AttributeError:'str'对象没有属性'isfloat'

时间:2020-02-08 07:49:19

标签: python oop getter-setter getter attributeerror

我正在关注面向OOP的关于吸气剂和设置器的教程,但我遇到了错误:

AttributeError:'str'对象没有属性'isfloat'

@height.setter
def height(self, value):
    if value.isfloat():
        self.__height = value
    else:
        print("Please enter a number")

有人知道为什么会这样吗? 预先谢谢你

1 个答案:

答案 0 :(得分:2)

您可以使用

@height.setter
def height(self, value):
    if isinstance(value, float): # Idea by Siva Shanmugam
        self.__height = value
    else:
        print('Please enter a number')

测试值是否为浮点数,还是简单地

@height.setter
def height(self, value):
    self.__height = float(value)

如果值无法将TypeError转换为value,则获得float。使用此功能,int输入和带有浮点字符的str不会引起问题。