Python 3.x 如何修复Python3中的eval()()eval
此代码来自: 构建结构功能:Python 3.x 如何修复Python3中的eval()()eval,python-3.x,Python 3.x,此代码来自: 构建结构功能: def build_structure(width_basis, basis_type, list_shapes, start=0, rdm_basis_plugins=False, add_random_edges=0, plot=False, savefig=False): basis, role_id = eval(basis_type)(start, width_basi
def build_structure(width_basis, basis_type, list_shapes, start=0,
rdm_basis_plugins=False, add_random_edges=0,
plot=False, savefig=False):
basis, role_id = eval(basis_type)(start, width_basis)
eval()时出错:未定义名称“cycle”
当我看到源代码时,eval函数是eval()。eval()的含义是什么?如何修复此错误?我在同一个库中解决了相同的问题: 首先,请注意该库支持Python2.7,而不是像您的标记那样支持3.x 我修改了代码以支持Python3.5,以及项目文件层次结构,它对我很有用
此外,为了更好地练习,我删除了“eval”部分,改用dictionary,就像注释中建议的@Martijn Pieters一样。
eval(basis_type)
应该返回一个可调用的对象。然后调用eval()
的结果。代码应该使用的是globals()[basis\u type]
,或者更好的是,将所有可能的类型放入字典中basis_types={}
,字符串键指向可调用的对象。求值失败只意味着在执行eval()
的命名空间中,没有定义名称cycle
。
def build_structure(width_basis, basis_type, list_shapes, start=0,
rdm_basis_plugins=False, add_random_edges=0,
plot=False, savefig=False):
basis, role_id = eval(basis_type)(start, width_basis)