获取类中所有变量名字,以及变量类型,并且根据类型调用相应的方法把值传入变量
时间: 2024-01-17 09:05:43 浏览: 52
好的,我可以帮你实现这个功能。首先,我们可以通过Python中的内置函数`dir()`来获取类中所有的属性和方法。然后,我们可以使用`getattr()`函数来获取属性的值,并根据类型来调用相应的方法传入值。以下是一个示例代码:
```python
class MyClass:
def __init__(self):
self.name = "John"
self.age = 25
self.height = 180.5
def set_name(self, name):
self.name = name
def set_age(self, age):
self.age = age
def set_height(self, height):
self.height = height
def get_variables(self):
variables = dir(self)
for var in variables:
if not var.startswith("__") and not callable(getattr(self, var)):
var_type = type(getattr(self, var)).__name__
value = input(f"Please enter value for {var}: ")
if var_type == "str":
getattr(self, f"set_{var}")(str(value))
elif var_type == "int":
getattr(self, f"set_{var}")(int(value))
elif var_type == "float":
getattr(self, f"set_{var}")(float(value))
my_class = MyClass()
my_class.get_variables()
print(f"Name: {my_class.name}, Age: {my_class.age}, Height: {my_class.height}")
```
在这个示例代码中,我们定义了一个`MyClass`类,其中包含了3个属性:`name`、`age`和`height`,以及3个设置属性值的方法:`set_name()`、`set_age()`和`set_height()`。`get_variables()`方法用于获取类中所有的属性名字和类型,并根据类型调用相应的方法传入值。最后,我们通过实例化`MyClass`类并调用`get_variables()`方法来测试这个功能。
阅读全文