我有问题,需要一些面向对象的帮助我想创建一个图形数据集和一些关于修改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
。