天气查询工具:实现一个天气查询工具类,包含获取当前天气、天气预报等方法,使用继承来实现不同城市的天气查询功能,每个城市作为一个子类。Python
时间: 2024-12-29 18:33:31 浏览: 6
在Python中,你可以创建一个名为`WeatherBase`的基类,作为所有城市天气查询的通用模板,然后为每个特定城市如北京、上海等地创建一个子类并继承自`WeatherBase`。下面是一个简单的示例:
```python
class WeatherBase:
def __init__(self, city):
self.city = city
def get_current_weather(self):
raise NotImplementedError("Subclasses must implement this method")
def get_weather_forecast(self):
raise NotImplementedError("Subclasses must implement this method")
class BeijingWeather(WeatherBase):
def __init__(self):
super().__init__("北京")
# 实现具体的天气API接口,这里仅做演示
self.weather_api = "http://api.example.com/weather/beijing"
def get_current_weather(self):
response = requests.get(self.weather_api)
return response.json()["current"]
class ShanghaiWeather(WeatherBase):
def __init__(self):
super().__init__("上海")
self.weather_api = "http://api.example.com/weather/shanghai"
def get_current_weather(self):
response = requests.get(self.weather_api)
return response.json()["current"]
# 使用示例
beijing_weather = BeijingWeather()
shanghai_weather = ShanghaiWeather()
print(beijing_weather.get_current_weather())
print(shanghai_weather.get_current_weather())
```
在这个例子中,`BeijingWeather`和`ShanghaiWeather`都实现了`get_current_weather`方法,并通过父类`WeatherBase`的构造函数设置了自己的城市名。这样,无论查询哪个城市的天气,只需要实例化对应的子类即可。
阅读全文