星夕ING 发表于 2022-11-25 13:55:04

一道python练习题题意分析!不会耽误大家很长时间麻烦就帮我看一眼QAQ,大感谢

编写一个 Python 类 Flower,它有三个实例变量,类型分别为 str、int 和 float,
分别代表花的名称、花瓣数量和价格。
您的类必须包含一个初始值设定项,该初始值设定项将每个变量初始化为适当的值,
并且您的类应包含用于设置每种类型的值和检索的方法
每个类型的值。您的程序应该足够健壮,可以处理可能
不适当的输入。

就是这道题,他的意思是不是说,我这样写:
class Flower:
      name = '一种花'
      nums = 7
      price = 1.5
      def allow_input():#允许用户更改成自己心仪的数值,且如果用户输入不恰当的类型,不会报错而是提醒用户输入正确类型,直至输入正确为止
            pass

大体我打算这样写,请问大家觉得这样符合题意吗?总感觉哪里怪怪的,但是用init也不对叭?。。。。

阿奇_o 发表于 2022-11-25 17:41:16

本帖最后由 阿奇_o 于 2022-11-25 17:51 编辑

你写的那个是 "类变量"了,它要求的是 "实例变量",也就是最常见的 带 self 的 (通常写在__init__里的) ,比如:
class Flower:
    def __init__(self, name='牡丹', nums=7, price=1.5):
      self.name = name
      self.nums = nums
      self.price = price
    def set(self, attr, value):
      if attr == 'name' and isinstance(value, str):
            self.name = value
      # elif
以上只是 例子,包括了 设置值的 类型和值 的检查方法(但不完整的)。另外还可以用 __setattr__ 的特殊方法,可以自己去了解和使用。

页: [1]
查看完整版本: 一道python练习题题意分析!不会耽误大家很长时间麻烦就帮我看一眼QAQ,大感谢