为什么我的函数返回“函数___在0x7f37c058d378”?

时间:2019-10-12 15:17:01

标签: python

此功能:

hand_p = ''

def hand_player(card_variable):
    global hand_p
    hand_p = hand_p + str(card_variable)
    return hand_p

返回类似function hand_player at 0x7f37c058d378的内容。

为什么会这样?

2 个答案:

答案 0 :(得分:2)

您没有在代码中的任何地方调用该函数。如果您想传递参数'a',则可以按以下方式调用它:

hand_p = ''

def hand_player(card_variable):
    global hand_p
    hand_p = hand_p + str(card_variable)
    return hand_p

print(hand_player('a'))

答案 1 :(得分:1)

您已将函数分配(或正在分配代码中的其他位置,因为从您发布的代码中不清楚您在哪里进行分配),该函数已分配给变量。这类似于c的函数指针。

鉴于您发布的代码,您可能正在某个地方写东西:

variable = hand_player

,您将有效地将“整个函数”存储到变量中。当然,这不是完全发生的情况,仅将指向函数中代码所在的内存中地址的指针存储到变量中。

从技术上讲,此后,您可以通过存储变量以相同的方式调用函数,即

variable(some_card)

有关更多信息,请参见this question

正如techytushar所建议的那样,您可能正在尝试调用该功能,对吧?在这种情况下,您需要将参数传递给它。