Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何修复Python3中的eval()()eval_Python 3.x - Fatal编程技术网

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)