如何调用baseclass中的子类



我有问题,需要一些面向对象的帮助我想创建一个图形数据集和一些关于修改base_graph数据集的子类我的问题是,如何调用baseclass中的子类来删除/添加basegraph中的节点?

class base_graph(Dataset):
def __init__(self, nodes, edges):
---
def random_graph(self):
# graph = generate random graph
def __len__(self):
---
def __repr__(self):
---
def __getitem__(i):
---
how to **call** Modifygraph_byAdding & Modifygraph_byDeleting here 
# like randomOrder(Modifygraph_byAdding(graph), Modifygraph_byDeleting)

class Modifygraph_byAdding:
def __init__(self, node):
---
def add_sample_to_A(self, graph):
---

class Modifygraph_byDeleting:
def __init__(self, node):
---
def delete_node_from_A(self, node):
---

By"如何调用Modifygraph_byAdding&CCD_ 2";您的意思是传递这些类的实例,还是将它们与执行某些操作的用户定义调用运算符结合使用?

无论哪种情况,您都至少需要提供这样的实例,作为__getitem__的参数,或者为base_graph提供由这两个实例组成的两个新成员。

也就是说,我相信只要注意到你真的不需要两个新类来定义对base_graph的特定实例起作用的函数,你的设计就可以得到改进。你可以简单地做

class base_graph(Dataset):
def __init__(self, nodes, edges):
self.nodes = nodes
self.edges = edges
def add(self, node):
# code to add node to self.nodes

def delete(self, node):
# code to delete node from self.nodes

def random_graph(self):
# graph = generate random graph

def __len__(self):
---
def __repr__(self):
---
def __getitem__(self, node_i):
---
# here you can use self.add(node_i) and self.delete(node_i)

顺便问一下,你是在用random_graph构建新的base_graph吗?根据此函数的简单程度,您可能只想将其实现粘贴在__init__函数内部并删除def random_graph

相关内容

  • 没有找到相关文章

最新更新