假设我们在全局命名空间中定义了一些可用的类。在示例中:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
class Vector:
def __init__(self, alpha, r):
self.x = r * cos(alpha)
self.y = r * sin(alpha)
# and many others...
Run Code Online (Sandbox Code Playgroud)
这个怎么做:
class_name = 'Point'
x = 14.361
y = -8.100
code_str = 'class_object = ' + class_name + '(' + str(x) + ', ' + str(y) + ')'
exec code_str # That evaluates to: "class_object = Point(14.361, -8.100)"
print class_object.x, class_object.y
Run Code Online (Sandbox Code Playgroud)
不使用危险的执行程序?
附言。如果有人询问,我打算从某些 txt 或 json 文件加载数据。