我正在处理一段代码,需要验证两个用户是否在几个不同的标准下“匹配”。如果有帮助的话,可以把它看作是一个约会应用程序,我们试图根据年龄,性取向,种族偏好等来匹配人。以下是一个有3个条件的例子,每个条件都是一个函数。什么是验证多种复杂条件的良好模式?
def is_match(row):
return True \
and ethnicity(user_a, user_b) \
and sexual_orientation(user_a, user_b) \
and age(user_a, user_b) \
现在,让我们说,我想增加对邻近另一个条件,我只想把它添加到功能:
def is_match(row):
return True \
and ethnicity(user_a, user_b) \
and sexual_orientation(user_a, user_b) \
and age(user_a, user_b) \
and proximity(user_a, user_b)
当然,这是一个小的应用是可行的,但我可以想象一下,其他同事可能想要检查代码并将自己的条件传递给它的点,而这看起来不够抽象。我知道这里必须有一个模式可以遵循。我应该像数组一样传递每个函数吗?你会如何推荐这样做?我正在使用Python,但您可以使用任何您想要演示模式的语言。
有你打得四处['任何()'和'所有()'](https://docs.python.org/2/library/functions.html#all)? – Kevin
是的,我以前使用过这些。所以这个想法是传递一个函数列表和两个用户对象,并且只对它们执行任何()或全部()操作?是的,这可能是我现在拥有的改进。谢谢。 –