Вызов вложенных несколько раз методов по имени

введите сюда код[![введите сюда описание изображения][1]][1]есть необходимость вызвать метод, например:

self.container.font.setPointSize(10)

Но сделать это нужно зная имена(динамически получаемые)

Попробовал через:

command_parent = getattr(self.container, parent.text())  
command = getattr(command_parent(), command_name_parameter)
command(10)

в этом случаи ничего не происходит, сами методы получаются, но не исполняется.

Через exec тоже не получилось, выдает синтаксическую ошибку.(знаю что не безопасно)

        command = f"{self.container}.{parent.text()}().set{ property[:1].upper() + property[1:]}(10)"
        print(command)
        exec(command)

  File "<string>", line 1
    <PySide6.QtWidgets.QPushButton(0x1e67421dd80) at 0x000001E6757D22C0>.font().setPointSize(10)
    ^
SyntaxError: invalid syntax

Что можно сделать или я где то с кодом ошибся?

Пример как приходят данные, таких свойств дофига, поэтому ручками вводить все команды сложно и долго:

{
    "name": "font",
    "type": "QFont",
    "widget_type": "QWidget",
    "parameters": [
      {
        "name": "family",
        "type": "QString"
      },
      {
        "name": "PointSize",
        "type": "int"
      },
      {
        "name": "bold",
        "type": "bool"
      },
      {
        "name": "italic",
        "type": "bool"
      },
      {
        "name": "underline",
        "type": "bool"
      },
      {
        "name": "strikeout",
        "type": "bool"
      },
      {
        "name": "kerning",
        "type": "bool"
      }
    ]
  }

Ответы (1 шт):

Автор решения: Amgarak

Если я вас правильно понял:

class Main:
    def __init__(self):
        self.container = Container()
        parent_text =  "setPointSize"
        getattr(self.container.font, parent_text)(12)

class Container:
    def __init__(self):
        self.font = Font()
        parent_text =  "setPointSize"
        getattr(self.font, parent_text)(11)

class Font:
    def setPointSize(self, size):
        print(f"Size: {size}")

Main()
container = Container()  
getattr(container.font, "setPointSize")(10)

Вывод:

Size: 11
Size: 12
Size: 11
Size: 10

[Program finished]
→ Ссылка