Mam metodę Google, która może wskazywać, że muszę mieć możliwość zwrócenia numeru MaleResponseMessage
lub FemaleResponseMessage
. Czy istnieje sposób, aby określić, że tak jak w przypadkugoogle metoda punktu końcowego w chmurze z komunikatem wielokrotnej odpowiedzi
@endpoints.method(message_types.VoidMessage, [MaleResponseMessage, FemaleResponseMessage])
Istnieje oczywiście możliwość deklarowania klasie Super wiadomość, powiedzmy, PersonResponseMessage
zawinąć albo MaleResponseMessage
lub FemaleResponseMessage
. Ale czy jest coś podobnego do powyższego fragmentu?
EDIT:
Próbuje realizować własną propozycję, utknąłem. Jedyną rzeczą, która ma dwa typy komunikatów, jest żądanie: dokładnie te same pola żądania (z dodatkowym boolean female=true/false
) dla PersonRequest
. Pola MaleResponseMessage
i FemaleResponseMessage
nie mają wspólnego. Więc używam jedną metodę końcowego, jak @bossylobster pokazach, gdzie mogę sprawdzić
if request.female : # request.female == True
return get_female(etc, etc)
else: # request.female == False // implies male
return get_male(etc,etc)
na odpowiedź, muszę coś takiego
class PersonResponse(messages.Message):
if ??? :
item = messages.MessageField(MaleResponseMessage,1)
else:
item = messages.MessageField(FemaleResponseMessage,1)
nie jestem pewien co do sprawdzenia ???
dla. Najpierw pomyślałem o isinstance
lub type
. Ale jak miałbym to zrobić? Czy poniżej będzie działać?
class PersonResponse(messages.Message):
if type(Message()) == MaleResponseMessage :
item = messages.MessageField(MaleResponseMessage,1)
else:
item = messages.MessageField(FemaleResponseMessage,1)
To, co podoba mi się w twoim pytaniu, to fakt, że znasz swoje rzeczy. Po prostu utknąłeś w tej kwestii. :) Pamiętaj, aby udostępnić swoje ostateczne rozwiązanie, jeśli @bossylobster lub ktoś inny nie jest w stanie pomóc, ale dostaniesz się tam. – learner
@ Katedral Pillon, nie rozumiesz, co robią podklasy 'messages.Message'. Są tam, aby utworzyć definicję kontenera bufora protokołu, więc można wyświetlać tylko pola statyczne, nie są dozwolone warunkowe wyrażenia "jeśli". – bossylobster