Не уверен что делать так хорошая идея, но это возможно, получая аттрибут объекта через getattr и обращаясь к результату.
class Member:
def all(self):
print "hello member"
class September:
def all(self):
print "hello september"
class Field:
def __init__(self):
self.member = Member()
self.september = September()
field = Field()
field.member.all()
getattr(field, "september").all()
Если бы "september" было бы названием фунцкции то вызов был бы просто getattr(field, "september")()
По второму вопросу, все так же. А через setattr можно менять значение аттрибута. А через dir(field) можно получить список всех обьявленных на элементе полей.
class Member:
def __init__(self):
self.name = "John"
self.surname = "Galt"
member = Member()
print member.name
print getattr(member, "surname")
setattr(member, "surname", "Wayne")
print getattr(member, "surname")