python中,一个类里面有多个属性,现在要设计一个函数,输入为该类的属性的字符串信息,怎么在函数内实现字符串和具体属性的对应?
时间: 2024-10-20 08:14:58 浏览: 11
在Python中,为了实现在函数内部根据传入的字符串与类的属性进行映射,你可以创建一个字典或者类变量来存储属性名及其对应的值。这样,当你接收到一个字符串时,可以通过检查这个字典来找到相应的属性。
首先,在类中定义一个字典,键是属性名,值是属性值:
```python
class MyClass:
attr_dict = {
'attr1': None,
'attr2': None,
# 添加更多的属性
}
def __init__(self):
self.attr1 = "some_value" # 初始化一些属性
def get_attribute_by_name(self, attr_name):
if attr_name in self.attr_dict:
return getattr(self, attr_name) # 使用getattr获取属性值
else:
raise AttributeError(f"'{attr_name}' is not a valid attribute.")
# 示例用法
my_instance = MyClass()
print(my_instance.get_attribute_by_name('attr1')) # 输出: some_value
```
在这个`get_attribute_by_name`函数里,如果传入的属性名存在,就通过`getattr`动态地从实例中获取属性值;若不存在则抛出AttributeError异常。
阅读全文