基于字符串获取对象

时间:2019-04-14 04:52:45

标签: python python-3.x

我正在尝试根据作为字符串输入提供的对象的名称来获取对象。例如,

sunny = WeatherCondition(...)
rainy = WeatherCondition(...)
snowy = WeatherCondition(...)

weather = input("Enter one of three weather conditions -> sunny, rainy, snowy")

变量weather的值将为晴天,下雨或下雪。 基于此,我想获取三个对象之一并将其分配给另一个变量。

我可以简单地为类WeatherCondition定义一个实例属性,但是前提是我无法实现。

1 个答案:

答案 0 :(得分:1)

如@ juanpa.arrivillaga所述,最好的方法是使用dict将每种天气类型(晴天,多雨等)映射到其各自的WeatherCondition实例:

weathers = {'sunny': WeatherCondition(...),
            'rainy': WeatherCondition(...),
            'snowy': WeatherCondition(...)}

然后您可以像这样访问每个WeatherCondition对象:

weathers['rainy']

由于您将天气类型作为用户输入,因此它将看起来像这样:

weather = input("Enter one of three weather conditions -> sunny, rainy, snowy")
weathers[weather]