用Python设计一个名为fan的类来代表风扇
时间: 2024-05-06 17:21:35 浏览: 27
好的,我知道了。下面是用Python设计一个名为Fan的类来代表风扇的代码示例:
```python
class Fan:
# 构造方法
def __init__(self, speed=1, radius=5.0, color="blue", is_on=False):
self.__speed = speed # 风扇速度(私有属性)
self.__radius = radius # 风扇半径(私有属性)
self.__color = color # 风扇颜色(私有属性)
self.__is_on = is_on # 风扇状态(私有属性)
# 定义属性
@property
def speed(self):
return self.__speed
@property
def radius(self):
return self.__radius
@property
def color(self):
return self.__color
@property
def is_on(self):
return self.__is_on
# 定义setter方法
@speed.setter
def speed(self, speed):
self.__speed = speed
@radius.setter
def radius(self, radius):
self.__radius = radius
@color.setter
def color(self, color):
self.__color = color
# 定义方法
def turn_on(self):
self.__is_on = True
def turn_off(self):
self.__is_on = False
def __str__(self):
# 返回风扇状态信息
return "Fan speed:{}, radius:{}, color:{}, is_on:{}".format(self.speed, self.radius, self.color, self.is_on)
```
这个类表示一个风扇,这个风扇有风速、半径、颜色和状态四个属性。其中,风速、半径、颜色都是私有属性,不能随意修改,只能通过getter、setter方法来访问和设置;而状态属性可以通过类的方法来控制。
该类还重载了类的__str__方法,以便在打印实例对象时能够自动调用输出相关信息。
如果你想创建一个风扇对象,可以这样做:
```python
# 创建一个默认的风扇对象
fan1 = Fan()
# 打印风扇状态
print(fan1) # output: Fan speed:1, radius:5.0, color:blue, is_on:False
# 修改风扇属性
fan1.speed = 3
fan1.radius = 10.0
fan1.color = "red"
# 打印风扇状态
print(fan1) # output: Fan speed:3, radius:10.0, color:red, is_on:False
# 打开风扇
fan1.turn_on()
# 打印风扇状态
print(fan1) # output: Fan speed:3, radius:10.0, color:red, is_on:True
# 关闭风扇
fan1.turn_off()
# 打印风扇状态
print(fan1) # output: Fan speed:3, radius:10.0, color:red, is_on:False
```
这样,就创建了一个风扇对象,并对其进行了属性设置和状态控制。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![py](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)