我正在遵循面向OOP的关于getter和setter的教程,但出现错误:
AttributeError:'str'对象没有属性'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)
如果值无法将TypeError
转换为value
,则获得float
。使用此功能,int
输入和带有浮点字符的str
不会引起问题。