Я получаю сообщение об ошибке: AttributeError: у объекта 'str' нет атрибута 'isfloat' - PullRequest
0 голосов
/ 08 февраля 2020

Я следую туто для OOP в отношении геттеров и сеттеров, но получаю ошибку:

AttributeError: у объекта 'str' нет атрибута 'isfloat'

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

Кто-нибудь знает, почему это происходит? Заранее спасибо

1 Ответ

2 голосов
/ 08 февраля 2020

Вы можете использовать

@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 input и str с символом float проблем не возникнет.

...