Несколько объектов одного и того же класса в Python - PullRequest
0 голосов
/ 04 июня 2010

У меня есть куча объектов из того же класса в Python.
Я решил поместить каждый объект в отдельный файл, так как он
проще управлять ими (если я планирую добавить больше объектов или редактировать их по отдельности)

Тем не менее, я не уверен, как запустить их все, они находятся в другом пакете
Так что, если я посмотрю на Netbeans, у меня есть TopLevel ... и есть также пакет с именем Shapes в Shapes у меня есть Ball.py, Circle.py, Triangle.py (внутри файлов есть вызов конструктора с деталями конкретной формы), и все они из класса GraphicalShape
Это настраивается в GraphicalShape.py в пакете TopLevel.
Теперь у меня в пакете Toplevel есть файл с именем newpythonproject.py, который запускает
процесс вызова каждой фигуры и работы с ней, как мне пройти через все фигуры?
также: это хороший способ сделать это?



постскриптум не берите в голову вещи верхнего регистра ...

Просто чтобы уточнить, я добавил изображение дерева проекта
http://i47.tinypic.com/2i1nomw.png

Ответы [ 2 ]

2 голосов
/ 04 июня 2010

Кажется, вы неправильно понимаете жаргон Python. Термин «объект» в Python означает фактический экземпляр класса во время выполнения. Насколько я могу судить, у вас есть "подклассы" класса Shape, называемые ball, circle и triangle. Обратите внимание, что подкласс также является классом. Вы храните код для каждого такого подкласса в отдельном файле, и это нормально.

Я думаю, что вы запутались, потому что слишком рано концентрируетесь на файловом макете вашего проекта. С Python часто легче начать с одного файла, записывая в него все, что вам нужно (функции, классы и т. Д.). Просто заставь все работать в первую очередь. Позже, когда у вас есть рабочий код, и вы просто хотите разделить его часть на другой файл по организационным причинам, для вас будет намного более очевидно (для вас!) Это сделать.

В Python каждый класс не должен быть определен в своем отдельном файле. Вы можете сделать это, если хотите, но это не обязательно.

0 голосов
/ 04 июня 2010

непонятно, что вы имеете в виду, когда говорите «пробежите их всех».

Если вы имеете в виду «импортировать их для использования», то вам следует:

  1. Убедитесь, что родительская папка shapes находится в переменной окружения PYTHONPATH; затем используйте
  2. from shapes import ball.
...