我该如何更换eval?

时间:2017-06-14 09:37:45

标签: 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
        move(self, name)

2 个答案:

答案 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()代替。