Muszę przerobić troche projekt oparty na flasku i sqlalchemy. Mamy endpoint gdzie wsadem jest nazwa klasy(tabeli) która ma zostać wywołana. Jednak z tej klasy muszę pobrać zmieną _tablename bo to jest moja domyśla nazwa tabeli. Żeby to zrobić muszę wywołać plik gdzie trzymam te klasy(tablemodels) i podać nazwę klasy(Loc) - tablemodels.Loc.tablename_ <- takie coś zwraca mi to o co mi chodzi. Teraz pytanie jak zrobić żeby Loc zamienić na zmienną.
#programowanie #flask #sqlalchemy
#python
Zawsze można evalem zrobić, ale może znajdziesz jakieś lepsze rozwiązanie.
class Abc:
value = 123
class Xyz:
value = 456
def getvaluefromclass(classname):
return eval(f"{classname}.value")
print(getvaluefromclass("Abc"))
print(getvaluefromclass("Xyz"))
output:
python test.py
123
456
albo name samo Eval(nazwaklasy) zwróci klasę i możesz robić z tym co chcesz
masz cały wątek o tym https://stackoverflow.com/questions/1176136/convert-string-to-python-class-object
jak już będziesz miał klasę to robisz
getattr(klasa, pole, default)