如何使用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)'。 ***這就是它的全部。*** –