我有一个python函数,它包含一个用于检查内容的if语句。
def my_func(a, b, c):
if a < b and b < c:
#do complicated stuff
我想修改函数,以便调用者可以通过传入布尔值来确定是否执行if语句检查。
def my_func(a, b, c, perform_check=True):
我试图找出如何使条件有时只被调用,或者跳过其他时间。
答案 0 :(得分:3)
我想这就是你需要的东西:
if include_already_seen or not data[person].get(item, 0):
答案 1 :(得分:1)
def find_recommendations(person, using=pearson_correlation, data=critics, include_already_seen=True):
totals = {}
sim_sum = {}
for critic in critics:
if critic != person:
similarity_score = using(data, person, critic)
print "the similarity score between %s and %s is %d" % (person, critic, similarity_score)
if similarity_score <= 0: continue # ignore similarity_scores below 0
for item in data[critic]:
if include_already_seen or (item not in data[person] or data[person][item] == 0):
totals.setdefault(item,0)
totals[item] += data[critic][item] * similarity_score
sim_sum.setdefault(item,0)
sim_sum[item] += similarity_score
#create the normalized list
rankings = [ (total/sim_sum[item],item) for item, total in totals.items()]
rankings_sorted = sorted(rankings)
rankings_sorted.reverse()
return rankings_sorted