Вопрос собственно не в eval, можно и через словарь. Вопрос как передать, во время создания экземпляра класса, значение свойства класса в зависимости от переменной:
model.py:
from sqlalchemy import Column, Integer, String, ForeignKey, PrimaryKeyConstraint, UniqueConstraint, ForeignKeyConstraint
from sqlalchemy.orm import column_property, relationship, deferred
from sqlalchemy.orm import declarative_base
Base = declarative_base()
class DicLevel(Base):
__tablename__ = 'DicLevel'
DicLevel_ID = Column(Integer, primary_key=True)
DicLevel_Name = Column(String(255))
class DicLocation(Base):
__tablename__ = 'DicLocation'
DicLocation_ID = Column(Integer, primary_key=True)
DicLocation_Name = Column(String(255))
test.py
import model as SQL
Tables = {
'DicLevel' : SQL.DicLevel,
'DicLocation' : SQL.DicLocation,
}
def dic_add():
DictName = "DicLevel"
DictAdd = Tables[DictName](DicLevel_Name = '22swdasdas')
print(DictAdd.DicLevel_Name)
dic_add()
Это прекрасно работает без eval, но при создании экземпляра объекта указывается переменная класса напрямую которой присваевается значение DicLevel_Name = ‘22swdasdas’.
Смысл вопроса, как команду:
DictAdd = Tables[DictName](DicLevel_Name = '22swdasdas')
преобразовать к виду:
DictAdd = Tables[DictName]("""Чегото там в зависимости от переменной DictName""" = '22swdasdas')