如何使用getattr本身没有“Class”?getattr()没有'类对象'
所以我有这种情况:我有'列',要求特定的数据按特定顺序的MySQL。数据通过flask/apache打印,以便用户有能力操作这些数据。现在,从flask,POST methdd,我收到改变(?)值,我将它们存储在python属性中。我需要检查这些属性中的值是否与原始数据中的值相同。当然,我可以硬核它,但我希望有动态更改列的可能性。
columns = ["username", "email", "admin"]
data = ("john", "[email protected]", "True")
username = "john"
email = "[email protected]"
admin = False
不知道我该怎么办呢?
for i in data:
if i == getattr(???, 'username'):
print("it's the same")
或这样的事情?:
for i in data:
if i == getattr(data, '?????'):
print("it's the same")
一切都是烧瓶内,我不能把它嵌入到类本身。所以,我没有“自我”等 如果我可以创建类,我可能会做出类似
class Myclass:
def __init__(self):
self.columns = ["username", "email", "admin"]
self.data = ("john", "[email protected]", "True")
self.result = []
self.username = "john"
self.email = "[email protected]"
self.admin = False
def test(self):
for i in self.data:
if i == getattr(self, self.columns[self.data.index(i)]):
self.result.append("same")
else:
self.result.append("different")
return self.result
Myclass().test()
[“同”,“不同”,“不同”]
离开了' “自我”。 +'。该属性被称为“用户名”,而不是“self.username”。 –
谢谢!为了清晰起见,我将编辑问题:) – tmdag
如果你可以做类似'x = thing.attribute'的东西,那么你也可以做一些像'attribute_name =“attribute”; x = getattr(thing,attribute_name)'。 ***这就是它的全部。*** –