|
- #!/usr/bin/env python
- # encoding: utf-8
- from collecti** import OrderedDict
- import sys
- _board_classes = {}
- class BoardMeta(type):
- def __init__(cls, name, bases, dct):
- super(BoardMeta, cls).__init__(name, bases, dct)
- if 'abstract' not in cls.__dict__:
- cls.abstract = False
- if cls.abstract:
- return
- board_name = getattr(cls, 'name', name)
- if board_name in _board_classes:
- raise Exception('board named %s already exists' % board_name)
- _board_classes[board_name] = cls
- class Board:
- abstract = True
- def __init__(self):
- pass
- Board = BoardMeta('Board', Board.__bases__, dict(Board.__dict__))
- class sitl(Board):
- pass
- class linux(Board):
- pass
-
- class pxfplus(linux):
- pass
-
- def list_boards():
- print(sorted(list(_board_classes.keys())))
- list_boards()
复制代码
|
|