Próbujesz znaleźć sposób na oczyszczenie mojego kodu.Może "rodzaj" monada w pytonie
Więc mam coś takiego w moim kodu Pythona:
company = None
country = None
person = Person.find(id=12345)
if person is not None: # found
company = Company.find(person.companyId)
if company is not None:
country = Country.find(company.countryId)
return (person, company, country)
Po przeczytaniu tutorial monad Haskell (w szczególności może), zastanawiałem się, czy to możliwe, aby napisać w inny sposób.
Jest to jednoznaczna poprawna odpowiedź dla tego konkretnego przypadku. Cały cel "Być może" jako monady polega na jednoznacznym modelowaniu podejścia EAFP jako bytu pierwszej klasy. W Pythonie jest to zarówno domniemana, jak i idiomatyczna w tej formie, więc używaj jej! –
Niestety, muszę "wiedzieć", która z osób lub firm jest Brakująca. – drozzy
@drozzy: Jeśli musisz warunkowo wykonać różne fragmenty kodu, w zależności od tego, które zmienne są "Brak", to oczywiste jest, że potrzebujesz warunkowych. – katrielalex