我遇到错误:AttributeError:'str'对象没有属性'isfloat'

问题描述 投票:-1回答:1

我正在遵循面向OOP的关于getter和setter的教程,但出现错误:

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

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

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

python oop getter-setter getter attributeerror
1个回答
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不会引起问题。

© www.soinside.com 2019 - 2024. All rights reserved.