Python2.7 继承networkx.DiGraph报错
2018-02-14 10:33
288 查看
Networkx是什么不再赘述
现希望继承Networkx,以实现功能扩展。Windows7 Python2.7 32bit
实现过程中出现问题
问题1
class CFG(nx):
def __init__(self, arg1=None, arg2=None, arg3=False ):
super(nx, self).__init__()
报错:
TypeError:Error when calling the metaclass bases module.__init__() takes at most 2 arguments(3 given)
解决:
Type(nx) -> module
而要继承的是类,所以需要改为
class CFG(nx.DiGraph):
def __init__(self, arg1=None, arg2=None, arg3=False ):
super(nx.DiGraph, self).__init__()
问题2
x = nx.DiGraph()
y = CFG()
len(dir(x)) -> 87
len(dir(y)) -> 85
竟然少了两个成员:succ和pred
以至于当y.add_edge(1,2)时报错:CFG中没有succ成员
解决:
哪里出错了?仔细检查代码,发现,犯了一个非常低级的错误
super(nx.DiGraph, self).__init__()
这句话实际上调用的是nx.DiGraph的父类的“构造函数”,即Graph的构造函数
自然DiGraph在Graph的基础上扩展的成员和方法都不在CFG中。
可能是早上起早了,脑子不太清楚
改正:
class CFG(nx.DiGraph):
def __init__(self, arg1=None, arg2=None, arg3=False ):
super(CFG, self).__init__()
OK,so much
现希望继承Networkx,以实现功能扩展。Windows7 Python2.7 32bit
实现过程中出现问题
问题1
class CFG(nx):
def __init__(self, arg1=None, arg2=None, arg3=False ):
super(nx, self).__init__()
报错:
TypeError:Error when calling the metaclass bases module.__init__() takes at most 2 arguments(3 given)
解决:
Type(nx) -> module
而要继承的是类,所以需要改为
class CFG(nx.DiGraph):
def __init__(self, arg1=None, arg2=None, arg3=False ):
super(nx.DiGraph, self).__init__()
问题2
x = nx.DiGraph()
y = CFG()
len(dir(x)) -> 87
len(dir(y)) -> 85
竟然少了两个成员:succ和pred
以至于当y.add_edge(1,2)时报错:CFG中没有succ成员
解决:
哪里出错了?仔细检查代码,发现,犯了一个非常低级的错误
super(nx.DiGraph, self).__init__()
这句话实际上调用的是nx.DiGraph的父类的“构造函数”,即Graph的构造函数
自然DiGraph在Graph的基础上扩展的成员和方法都不在CFG中。
可能是早上起早了,脑子不太清楚
改正:
class CFG(nx.DiGraph):
def __init__(self, arg1=None, arg2=None, arg3=False ):
super(CFG, self).__init__()
OK,so much
相关文章推荐
- Python2.7中networkx的安装方法
- Python2.7 学习笔记 (三)—— 类,继承,重载
- Python 2.7不能使用super继承tk的问题
- 【网络爬虫专辑】CentOS python升级到2.7版本操作过程
- Tensorflow安装(Ubuntu16.04+Python2.7)
- win8系统下,python 2.7安装xlrd,xlutils和xlwt的方法
- Python2.7 pip编码错误UnicodeDecodeError: 'utf8' codec can't decode byte 0xb0 in解决方法
- Python中的类、对象、继承
- python error python version 2.7 required,which was not found in the registry
- Centos6编译安装python2.7
- centos6.9配置安装python2.7及pip
- python2.7添加注释后,代码无法保存
- Python2.7 smtplib发送带附件邮件报错STARTTLS解决方法 推荐
- Python2.7+mysqlDB+mysql5.5.x更新操作无法正常刷新到服务器的问题
- Atitit python3.0 3.3 3.5 3.6 新特性 Python2.7新特性1Python 3_x 新特性1python3.4新特性1python3.5新特性1值得关注的新特性1Pyth
- python2.7--字符串和编码
- Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
- Python 类继承,__bases__, __mro__, super
- Centos升级python版本2.6至2.7