Использование регулярных выражений python

Забыл и не могу найти как сделать:

  1. допустим мне с объектом надо провернуть определенный набор действий

    a = [fun1, fun2 ...]
    for i in a:
        classobject.(и здесь нужно сделать чтобы подставлялись функции)
    
  2. и если надо выполнить одинаковое действие с большим количеством похожих обьектов

    for i in range(N):
        classobject(а здесь чтоб подставлялась цифра).func()
    

или может посоветуете что то более продуманное, заранее спасибо


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

Автор решения: nomnoms12
  1. Вызов метода по имени:
    getattr(obj, 'method_name')()
    
  2. Получение объекта по имени:
    globals()['obj']
    
    или:
    locals()['obj']
    
    Зависит от необходимой области видимости


Пример:

class Bacon:
    def f(self):
        print('Ni!')

    def g(self):
        print('eggs')


obj_0 = Bacon()
obj_1 = Bacon()

method_names = ['f', 'g']
for method_name in method_names:
    getattr(obj_0, method_name)()

for i in range(2):
    globals()[f'obj_{i}'].f()  # or locals()

stdout:

Ni!
eggs
Ni!
Ni!
→ Ссылка