Python 如何替换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

如何替换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)

正如已经回答的那样,为任务使用类方法并向其传递类对象


如果您在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()