首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttributeError:输入对象“图”没有属性“edges_list”

AttributeError:输入对象“图”没有属性“edges_list”
EN

Stack Overflow用户
提问于 2022-08-23 06:07:30
回答 1查看 71关注 0票数 0

我试着用OOP创建一个图形。我得到一个错误的AttributeError: type object 'Graph' has no attribute 'edges_list',我不明白为什么。下面是代码:我希望得到一些帮助。我确实设置了一个名为edges_list的图的属性。为什么它找不到?

代码语言:javascript
复制
import numpy as np
import networkx as nx

class Graph:
    def __init__(self, edges_file):
        self.node_set = set() #Set of nodes by name
        self.edges_list = []
        self.edges_file = edges_file
        self.generate_graph(edges_file)


    class Node:
        def __init__(self, name):
            self.name = name
            self.metal = -1

    class Edge:
        def __init__(self, name):
            self.name = name
            self.side1 = 0
            self.side2 = 0
            self.resistance = 0

    def generate_graph(self, edges_file):
        G = nx.Graph()
        G.add_nodes_from(range(0,856284))
        nodes_file = open('nodes.csv','r') 
        nodes_file_content = nodes_file.readlines()
        with open('edges.csv', 'r') as edges_file:
            next(edges_file)
            for line in edges_file:
                splitted_line = line.split(",")
                edge_name = splitted_line[0]
                node_name = splitted_line[1]
                neighbor_name = splitted_line[2]
                new_edge = self.Edge(edge_name)
                new_edge.side1 = splitted_line[1]
                new_edge.side2 = splitted_line[2]
                self.edges_list.append(new_edge.name)
                self.node_set.add(self.Node(node_name).name)
                self.node_set.add(self.Node(neighbor_name).name)
        edges_file.close()
        nodes_file.close()

if __name__ == '__main__':
    graph = Graph('edges.csv')
    Graph.generate_graph(Graph,'edges.csv')
EN

回答 1

Stack Overflow用户

发布于 2022-08-23 06:27:45

如果您添加了edges.csv和nodes.csv文件,这将是有帮助的。如果没有它,它更像是一个疯狂的建议,看起来其中一个问题出现在您的第二行:Graph.generate_graph(Graph,'edges.csv')

相反,尝试使用:graph.generate_graph(r'.\edges.csv')运行代码

另外,在def generate_graph中,这一行是错误的:

代码语言:javascript
复制
with open('edges.csv', 'r') as edges_file

这是因为您在一个还不知道文件名的函数中。您想要编写它:当然,with open(edges_file, 'r') as file:,根据需要修改其余的代码.

希望这能有所帮助!祝好运

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73453876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档