如何更换eval?我正在阅读很多关于使用它的糟糕经历的信息
class vahicle():
def move(class):
cl = eval(class)
# i need to use car as class here
class car(vehicle):
def __init__(self):
pass
def movement():
name = self.class.name
move(self, name)
答案 0 :(得分:1)
class Vehicle():
def move(self, cls):
return cls()
class Car(Vehicle):
def movement(self):
return self.move(self.__class__)
c = Car()
print c.movement()
答案 1 :(得分:0)
因为已经回答过,所以为你的任务使用类方法并将类对象传递给它。
如果在python中询问eval()
的替代方法,因为它不安全,您可以使用ast.literal_eval()
代替。