从列表中随机选择一个函数,然后对结果应用条件
randomly choosing a function from a list then apply conditions to the result
a 、 b 和 c 是预定义的函数,它们是更大代码的一部分。
代码总是返回 elif 部分,即使选择是 enemy_def
我试过打印每一个但没有任何反应
a = enemy_hit
b = enemy_def
c = enemy_sphit
d = [a,b,c]
enemyresponse = random.choice(d)()
#print(enemyresponse)
if enemyresponse == b :
thing.health = thing.health - 0.25
#print(enemyresponse)
elif enemyresponse != b :
#print(enemyresponse)
thing.health = thing.health - 1
enemy_reponse
永远不会等于 b
*,因为 enemy_reponse
是函数的 return 值,而不是函数本身。注意随机选择后如何立即调用该函数:
random.choice(d)()
# ^Called it
将选择的函数保存在一个名为 chosen_function
(或类似的东西)的变量中,然后检查它。
你的意思可能是这样的(未经测试):
a = enemy_hit
b = enemy_def
c = enemy_sphit
d = [a,b,c]
# Randomly get function from list
chosen_function = random.choice(d)
# Call it to get the return value
func_return = chosen_function()
print(func_return)
if chosen_function == b:
thing.health = thing.health - 0.25
else:
thing.health = thing.health - 1
*除非b
return本身,这似乎不太可能。
a 、 b 和 c 是预定义的函数,它们是更大代码的一部分。 代码总是返回 elif 部分,即使选择是 enemy_def 我试过打印每一个但没有任何反应
a = enemy_hit
b = enemy_def
c = enemy_sphit
d = [a,b,c]
enemyresponse = random.choice(d)()
#print(enemyresponse)
if enemyresponse == b :
thing.health = thing.health - 0.25
#print(enemyresponse)
elif enemyresponse != b :
#print(enemyresponse)
thing.health = thing.health - 1
enemy_reponse
永远不会等于 b
*,因为 enemy_reponse
是函数的 return 值,而不是函数本身。注意随机选择后如何立即调用该函数:
random.choice(d)()
# ^Called it
将选择的函数保存在一个名为 chosen_function
(或类似的东西)的变量中,然后检查它。
你的意思可能是这样的(未经测试):
a = enemy_hit
b = enemy_def
c = enemy_sphit
d = [a,b,c]
# Randomly get function from list
chosen_function = random.choice(d)
# Call it to get the return value
func_return = chosen_function()
print(func_return)
if chosen_function == b:
thing.health = thing.health - 0.25
else:
thing.health = thing.health - 1
*除非b
return本身,这似乎不太可能。