Установка наследуемых атрибутов дочернего экземпляра из базы данных экземпляров родительского класса (Python 3.x) - PullRequest
0 голосов
/ 22 января 2019

Как установить значения унаследованных атрибутов родительского класса для дочернего элемента из экземпляра родительского класса?

У меня есть база данных экземпляров родительского класса, которую я зацикливаю в методе Child, чтобы найти подходящий экземпляр по имени.Затем я хотел бы установить все унаследованные значения экземпляра на значения экземпляра, который был найден циклом.

class Material:
    name = None     
    rho = 1.0       #density (kg/m^3)
    E = 1.0e06      #elasticMod (kPa)
    poisson = 0.01  #poisson's ratio (n/a)
    sY = 1.0e06     #yieldStrength (kPa)
    sUT = 1.0e06    #ultimateTensileStrength (kPa)
    CoF = 0.10      #coefficient of Friction (n/a)

    matLib = [] # material Library

    def __init__(self, **kwargs):
        for key, value in kwargs.items():
            setattr(self, key, value)
            Material.matLib.append(self.name) #add to the library

class component(Material):

    mass = None  # Piston Mass (g)
    mat = None    # Material !!! keyWord to find values !!!
    ...(etc)...
...

    def __init__(self, **kwargs):
        for key, value in kwargs.items():
            setattr(self, key, value)

    def setMat(self):
        for n in Material.matLib:
            if self.mat is in Material.matLib:   
                self.rho =  <found_instance_value.rho>      #kg/m^3
                E = <found_instance_value.E>  ...(etc)...

...

aisi4340 = Material(name='aisi4340',
                    rho = 7850,
                    E = 8.0E06,
                    sY = 4.70e07,
                    sUT = 7.45e07,
                    poisson = 0.29
                   ) 


Piston = component(
                   geom = path + '.stp'
                   mat = 'aisi4340'
                   ...(etc)...
                  )

Piston.setMat()

... do some calcs on this component, 
    but other components are made of other materials,
    which should also inherit their respective values
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...