如何在Python3中修复eval()()eval

时间:2019-04-22 14:03:37

标签: python-3.x

这是GraphWave中的代码:

width_basis = 15
nbTrials = 20

### 1. Choose the basis (cycle, torus or chain)
basis_type = "cycle" 

### 2. Add the shapes 
n_shapes = 5  ## numbers of shapes to add 
#shape=["fan",6] ## shapes and their associated required parameters  (nb of edges for the star, etc)
#shape=["star",6]
list_shapes = [["house"]] * n_shapes

### 3. Give a name to the graph
identifier = 'AA'  ## just a name to distinguish between different trials
name_graph = 'houses'+ identifier
sb.set_style('white')
add_edges = 0
G, communities, _ , role_id = build_graph.build_structure(width_basis, basis_type, list_shapes, start=0,
                                       add_random_edges=add_edges, plot=True,
                                       savefig=False)

build_structure函数:

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()()的含义是什么?如何解决此错误?

1 个答案:

答案 0 :(得分:0)

我在相同的库中解决了相同的问题:

首先,请注意该库支持python 2.7,而不是像标记一样支持3.x。

我更改了代码以支持python 3.5,以及项目文件的层次结构,并且对我有用。

此外,为了更好的实践,我删除了“ eval”部分,并改用了字典,就像评论中建议的@Martijn Pieters。