Я работаю над механизмом 3D-рендеринга, использующим только стандартные библиотеки и tkinter, но я столкнулся с трудностью, пытаясь определить функцию, которая объединяет класс, частью которого она является, с другим экземпляром класса.
Код
class VertexCloud:
def __init__(self, seed: Vertex = Vertex(Point(0, 0, 0), Point(0, 0, 0))):
vertecies.append(seed)
#...
#merge two vertex clouds
def merge(vc: VertexCloud = VertexCloud(Vertex(Point(0, 0, 0), Point(0, 0, 0)))):
for vertex in vc.verticies:
verticies.append(vertex)
возвращает эту ошибку:
Traceback (most recent call last):
...
File"<Path>/ThreeDFamilies.py", line 126, in VertexCloud
def merge(vc: VertexCloud = VertexCloud(Vertex(Point(0, 0, 0), Point(0, 0, 0)))):
NameError: name 'VertexCloud' is not defined
Мои единственные идеи, как это исправить, - либо заранее объявить класс (предпочтительно), или определить функцию за пределами класса. К сожалению, хотя я владею другими языками, это мой первый крупный проект в python, поэтому я не совсем понимаю, как это будет работать синтаксически.
Любая помощь будет принята с благодарностью!