Я работаю с некоторыми алгоритмами графов и хочу сделать общий каркас графов / ребер.Я начал с создания класса Edge следующим образом:
class Edge:
source = None
destination = None
isDirected = False
isWeighted = False
weight = None
def __init__(self, source, destination, isDirected = False, weight = None):
self.source = source
self.destination = destination
self.isDirected = isDirected
if not weight is None:
self.isWeighted = True
self.weight = weight
def isSameEdge(self, edge: {'help': 'Some helpfull text goes here', 'type': Edge}):
if \
self.isDirected != edge.isDirected or \
self.isWeighted != self.isWeighted or \
self.weight != edge.weight:
return False
if self.isDirected:
if \
self.destination != edge.destination or \
self.source != edge.source:
return False
return True
Я получаю это сообщение об ошибке:
def isSameEdge(self, edge: {'help': 'Some helpfull text goes here', 'type': Edge}):
NameError: name 'Edge' is not defined
Мой вопрос:
1) Как я могу сообщитьPython, что параметр края в функции isSameEdge имеет тип Edge?
2) Я не хочу обязательно ограничивать тип. Я просто хочу, чтобы Pycharm / любая другая IDE давала мне подсказки о методах / переменных класса, доступных для