I am getting an error : AttributeError: 'str' object has no attribute 'isfloat'

I am getting an error : AttributeError: 'str' object has no attribute 'isfloat'

我正在学习有关 getter 和 setter 的 OOP 教程,但我收到错误消息:

AttributeError: 'str' object has no attribute 'isfloat'

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

有谁知道为什么会这样? 提前谢谢你

你可以使用

@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)

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