Я создаю что-то между библиотекой 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.