Python 如何替换eval?
如何替换eval?我读了很多关于使用它的不良体验的信息Python 如何替换eval?,python,Python,如何替换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
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)
正如已经回答的那样,为任务使用类方法并向其传递类对象
如果您在python中询问eval的替代方案,因为它不安全,您可以使用ast.literal\u eval。在python中,您可以直接传递类和函数,而不需要传递函数名并对其进行求值。您到底想实现什么?为什么car.movement调用vehicle.move并将其自己的类名作为参数?也许有一种更好、完全不同的方法可以做到这一点。
class Vehicle():
def move(self, cls):
return cls()
class Car(Vehicle):
def movement(self):
return self.move(self.__class__)
c = Car()
print c.movement()