gpt4 book ai didi

python - 没有 'class object' 的 getattr()

转载 作者:行者123 更新时间:2023-11-28 23:22:51 25 4
gpt4 key购买 nike

我如何在没有“Class”本身的情况下使用 getattr?

所以我有这种情况:我有“列”要求 mysql 按特定顺序提供特定数据。数据通过 flask/apache 打印,以便用户能够操作这些数据。现在,从 flask 的 POST 方法中,我收到了更改的(?)值,并将它们存储在 python 属性中。我需要检查这些属性中的值是否与原始数据中的值相同。当然,我可以硬核它,但我希望有可能动态更改列。

columns = ["username", "email", "admin"]
data = ("john", "john@snow.com", "True")

username = "john"
email = "different@email.com"
admin = False

不确定我该如何处理它?<​​/p>

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")

一切都在 flask 中,我无法将其嵌入到类本身中。所以我没有“ self ”等。如果我可以创建类,我可能会做类似的东西

class Myclass:
def __init__(self):
self.columns = ["username", "email", "admin"]
self.data = ("john", "john@snow.com", "True")
self.result = []
self.username = "john"
self.email = "different@email.com"
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()

['相同', '不同', '不同']

最佳答案

原来我在找简单的eval()。 getattr() 是为不同的目的而设计的。

很简单:

for i in data:
if i == eval(cols[data.index(i)]):
print("it's the same")

成功了

关于python - 没有 'class object' 的 getattr(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40783666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com