Вы не можете использовать A.b
, поскольку, как вы говорите, A
еще не определено.Но вы можете выбрать функции по их именам непосредственно из пространства имен:
class A:
def b(self):
pass
def c(self):
pass
d = [b, c]
Однако это вам не поможет, потому что теперь у вас есть список несвязанных методов:
>>> A().d[0]()
TypeError: b() missing 1 required positional argument: 'self'
Если вы хотите список связанных методов (где self
неявно передается в качестве текущего экземпляра), вам нужно будет создать этот список, когда у вас есть фактический экземпляр:
class A:
def __init__(self):
self.d = [self.b, self.c]
...
В качестве альтернативы вам необходимо явно передать self
несвязанному методу:
class A:
...
d = [b, c]
def foo(self):
self.d[0](self)