我有一个程序,需要从一个字符串变量中的一个类实例中获取信息。你知道吗
我曾向一位程序员朋友求助,但他擅长C语言,而不是python3语言,所以他能提供的最好的帮助就是尝试使用exec()命令。这对我没什么帮助。你知道吗
假设我有一些设置汽车信息的代码
class Cars:
def __init__(self, Brand, Model, Owner):
self.Brand = Brand
self.Model = Model
self.Owner = Owner
Car1 = Cars("Honda", "Civic", "Jon Arbuckle")
Car2 = Cars("Ford", "Focus", "Martha Jones")
MysteryCar = "Car1"
从只知道存储在MysteryCar
中的内容返回值"Jon Arbuckle"
是否仍然存在?你知道吗
你的朋友是对的。可以使用
exec
运行一些Python代码,这些代码是使用MysteryCar
所指向的字符串定义的。我喜欢f-strings(Python 3.6+),但您也可以用其他方式格式化strong:MysteryCar
将计算为f字符串中的Car1
,因此您正在执行命令上面。你知道吗
然而,正如一些评论所指出的那样,我会质疑这是解决这个问题的最好办法,还是你应该仅仅使用一本字典。你知道吗
使用
locals()
这是本地作用域变量的名称(作为字符串)的dict作为键,它们的值作为…..以及它的值!你知道吗另一种选择是使用
eval
,这是一种将字符串作为python代码计算的方法。所以你可以这样做:但总的来说
eval
被认为是有风险的,应该避免,在我看来。。。你知道吗例如,如果您的
MysteryCar
是来自用户的输入,如果用户输入一些危险的命令,可能会导致严重的问题。你知道吗另一方面,使用
locals
可以让用户知道他的选择是否错误相关问题 更多 >
编程相关推荐