2 anzi5091104 anzi5091104 于 2017.01.03 14:34 提问

python模块的问题,感觉模块没引入对。

下面这段python代码,运行提示
Traceback (most recent call last):
File "E:/project/python/可视化图/邻接表与邻接矩阵.py", line 43, in
gt.draw()
File "E:/project/python/可视化图/邻接表与邻接矩阵.py", line 36, in draw
self.G.node(str(node), str(node))
TypeError: 'dict' object is not callable
[1, 2, 5]
[2, 1, 5, 4, 3]
[3, 2, 4]
[4, 2, 5, 3]
[5, 1, 2, 4]

 import graphviz
import networkx as nx
from networkx.classes.graph import Graph

class GraphTable:
    def __init__(self, nodes, edges, is_dir = False):
        self.nodes = nodes
        self.edges = edges
        self.is_dir = is_dir
        self.graph = []
        for node in nodes:
            self.graph.append([node])
        for edge in edges:
            for n in self.graph:
                if n[0] == edge[0]:
                    n.append(edge[1])
                if not is_dir:
                    if n[0] == edge[1]:
                        n.append(edge[0])
        self.G = None

    def __str__(self):
        return '\n'.join([str(n) for n in self.graph])

    def draw(self):
        settings = dict(name='Graph', engine='circo', node_attr=dict(shape='circle'), format='png')
        self.G = nx.Digraph(**settings) if self.is_dir else Graph(**settings)
        for node in self.nodes:
            self.G.node(str(node), str(node))
        for edge in self.edges:
            self.G.edge(str(edge[0]), str(edge[1]))
        return self.G

gt = GraphTable([1, 2, 3, 4, 5], [(1, 2), (1, 5), (2, 5), (2, 4), (5, 4), (2, 3), (3, 4)])
print(gt)
gt.draw()

请问是什么问题?

1个回答

devmiao
devmiao   Ds   Rxr 2017.01.03 18:40
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
解决Mac上PyDev无法导入某些模块的问题
前一阵一直在恶补数学知识,昨天突然打开Mac上的Pydev发现有些模块不能正确引入,很奇怪的现象=。= 后来查知自己在pip的时候不小心下了个python2.7.10并把opencv依赖到这个版本的python上了!而本机自带的python2.7.6是通过pip默认安装模块的那个版本。 2.7.6里可以引入scipy、matplotlib但是不能用cv2,而2.7.10里只能引入neuro
python 根据路径导入模块
Import python module NOT on path http://stackoverflow.com/questions/10161568/import-python-module-not-on-path 常规做法: import sys sys.path.append('C:/full/path') from foo import util,bar 而要直接
Python之import方法引入模块详解
在python用import或者from…import或者from…import…as…来导入相应的模块,作用和使用方法与C语言的include头文件类似。其实就是引入某些成熟的函数库和成熟的方法,避免重复造轮子,提高开发速度。python的import方法可以引入系统的模块,也可以引入我们自己写好的共用模块,这点和php非常相似,但是它们的具体细节还不是很一样。因为php是在引入的时候指明引入文件
python模块导入过程
在python中,当我们需要在一个模块中引用另一个模块中的内容时,我们需要通过将需要引用的模块import当前模块中来。对于不熟悉python的人来说,他们可能会认为python中的import与C语言中的#include,或者是Java中的import是一样的。但其实它们之间是有区别的,在python中,import一个模块不仅仅是将另外一个文件中的文本插入到当前文件中。实际上,import是在
Python3导入自定义模块的3种方式
前话最近跟着廖雪峰的教程学到 模块 这一节。关于如何自定义一个模块,如果大家不懂的话还请先看下面这篇博文 ↓http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014318447437605e90206e261744c08630a836851f5183000)模块是个好东西啊,大牛们开
python 引入oracle模块
win7环境 python2.7引入 oracle模块,里面有32和64位的文件, 如果引入引入cx_oracle报如下错误: cx_Oracle ImportError: DLL load failed: %1 不是有效的 Win32 应用程序。 请把压缩包对应的oci.dll放到%python_home%\Lib\site-packages 下。 也是耽误了好久才找到的 ,避免大家走弯路。
[Python]导入循环问题
在大型的Python工程中,由于架构设计不当,可能会出现模块间相互引用的情况。 这时候需要通过一些方法来解决这个问题. (1)重新设计架构,解除相互引用的关系。 (2)把import语句放置在模块的最后 (3)把import语句放置在函数中
python自定义模块和模块引入
到现在才知道怎么把自己写的模块加入到查找路径中,方便在使用过程中解释器能索引到自定义的模块 进入python环境中,首先引入sys模块:import sys 然后使用sys.path查询现有python解释器所查找的模块路径 书写自己的模块放置到一个文件夹下 然后使用sys.path.append("my_model_path"),my_model_path就是自定义模块所存放的路径 这
python引入时间模块,并输出当前时间
import time print time.ctime(time.time())
C++ 调用Python3 脚本中无法引入内建模块的问题 解决方法
前言: 最近用tensorflow(偷懒版)搞一点小东西,由于python的性能捉鸡,采用C++来采集数据。于是要C++起调python的模块。windows下的偷懒版,只能用3.5+,不然也没这么多事了。问题:起调的脚本中无法引入内建模块新建一个新建一个简单的文件通过对numpy是否引入 进行对比,发现的确是无法引入内建模块引发的错误。ps:qt环境下PyErr_Print();这个函数没反应,...