Python препроцессор с правилами для упрощения создания класса (спецификация домена c язык) - PullRequest
1 голос
/ 28 мая 2020

Я создаю что-то между библиотекой Python и DSL (язык c), для очень специфических приложений c, так что мы можем избежать:

class Car(RoomObject):
    def __init__(self):
        super().__init__()
        self.rect = rect(-20, -20, 40, 40)
        self.zindex = -10
        self.pos = self.rect.midbottom  
        _tempvar = 123
    def do(self, x)
        self.foo = x

и вместо этого укажите:

class Car(RoomObject):  # 1) avoid the def and self, all nested paragraphs in class are def 
    init():             # 2) __init__ -> init        3) automatically do the super init
        rect = rect(-20, -20, 40, 40)  # 4) assignations are self. by default...
        zindex = -10
        pos = rect.midbottom  
        _tempvar = 123                 # 5) ...except if variable name begins with _
    do(x):                             # ==> def do(self, x):
        foo = x                        # ==> self.foo = x

Можно ли это сделать с помощью встроенной библиотеки Python, например inspect (самоанализ кода) или препроцессора (если любой) или нет?


Контекст: это для нишевого рынка, где я не могу просить нетехнических людей писать такие вещи, как def __init__(self): super().__init__() self.rect = ... все время. Мне нужно, чтобы эти c людей могли писать на более простом диалекте, и мой инструмент переведет его на обычный Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...