提问人:tomp 提问时间:9/1/2022 更新时间:9/1/2022 访问量:51
循环遍历成员变量并更改其类型(在 Python 中)?
looping through member variables and changing their type (in Python)?
问:
是否可以迭代定义类的某些成员变量,然后更改成员变量类型?
例如,如下所示:
def __init__(self, a, b, c):
self.A = a
self.B = b
self.C = c
self.memberVarsToChange = {self.A: float, self.B: float}
def convertTypes(self):
for item, t in self.memberVarsToChange.items():
item = t(item)
该项显然不引用成员变量,它是循环的本地变量。有没有办法引用实际的成员变量?
非常感谢。
答:
2赞
Barmar
9/1/2022
#1
仅供参考,在 Python 中,成员变量称为属性。
您需要将属性名称存储在 中,而不是将属性值存储在 中。然后,您可以使用和动态更新属性。self.memberVarsToChange
getattr()
setattr()
def __init__(self, a, b, c):
self.A = a
self.B = b
self.C = c
self.memberVarsToChange = {"A": float, "B": float}
def convertTypes(self):
for attr, t in self.memberVarsToChange.items():
setattr(self, attr, t(getattr(self, attr)))
评论
self.A = float(a)