Форум сайта python.su
Здравствуйте, коллеги.
Есть базовый класс, который в зависимости от платформы (Win, Linux) должен быть реализован по-разному (специфика платформы), одинаков только интерфейс класса. Как правильно (хорошо) организовать этот код? Как это делаете вы? Есть нюанс - хочется, чтобы генератор документации (Epydoc) видел описания обеих реализаций вне зависимости от системы, под которой генератор запускается.
Я сначала тупо сделал так:
import sys
if sys==u'win32':
class SomeClass(object):
u'''Реализация под Windows'''
else:
class SomeClass(object):
u'''Реализация под Linux'''
Офлайн
kaaВыстроить иерархию класса, при которой платформено-зависимый код был бы на одном её уровне и вынесен в отдельные модули.
Как правильно (хорошо) организовать этот код?
Офлайн
kaa
мне вот решение Андрея Светлова понравилось - вынести специфичный код в отдельные модули и сделать так:
import sys
from os.path import join, dirname
__path__.append(join(dirname(__file__), sys.platform))
Отредактировано (Май 13, 2011 17:14:08)
Офлайн