问题描述:使用pyreverse过程中报错:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | Traceback (most recent call last): File "/opt/OpsManage/venv3/bin/pyreverse", line 8, in <module> sys.exit(run_pyreverse()) File "/opt/OpsManage/venv3/lib/python3.6/site-packages/pylint/__init__.py", line 37, in run_pyreverse PyreverseRun(sys.argv[1:]) File "/opt/OpsManage/venv3/lib/python3.6/site-packages/pylint/pyreverse/main.py", line 184, in __init__ sys.exit(self.run(args)) File "/opt/OpsManage/venv3/lib/python3.6/site-packages/pylint/pyreverse/main.py", line 209, in run writer.DotWriter(self.config).write(diadefs) File "/opt/OpsManage/venv3/lib/python3.6/site-packages/pylint/pyreverse/writer.py", line 38, in write self.write_classes(diagram) File "/opt/OpsManage/venv3/lib/python3.6/site-packages/pylint/pyreverse/writer.py", line 59, in write_classes self.printer.emit_node(i, **self.get_values(obj)) File "/opt/OpsManage/venv3/lib/python3.6/site-packages/pylint/pyreverse/writer.py", line 136, in get_values args = [arg.name for arg in func.args.args if arg.name != "self"] TypeError: 'NoneType' object is not iterable |
修改源码 python3.6/site-packages/pylint/pyreverse/writer.py
添加if判断:
1 2 3 4 5 | for func in obj.methods: if func.args.args is not None: args = [arg.name for arg in func.args.args if arg.name != "self"] label = r"%s%s(%s)\l" % (label, func.name, ", ".join(args)) label = "{%s}" % label |