首页 > 解决方案 > 字典自动调用作为值的函数

问题描述

对编程和尝试使用 Python 编写命运之轮游戏非常陌生。其中一个功能是包含所有可能的车轮切片的字典。除其他外,函数将抓取一个随机键并返回该值。词典:

wheel = {
    "Bankrupt": bankrupt(),    # a function that removes all the player's money
    "$100": 100,
    "$200": 200,
    "$300": 300,
    "$400": 400,
    "$500": 500,
    "$600": 600,
    "$700": 700,
    "$800": 800,
    "$900": 900,
    "$1000": 1000,
    "$2000": 2000
}

我确定这是一个非常新手的问题,但我不明白为什么我一运行脚本就调用字典中的破产函数,然后我实际上通过选择随机轮片的其他函数调用它。

任何指导将不胜感激。

标签: pythonfunctiondictionary

解决方案


当 python 创建您的字典时,它将评估每个值。因此它运行 bankrupt() 来查找破产键的值。所有其他值也正在评估中,即 100 被评估为 100。

在 python 中,函数是“第一类”对象,因此您可以像传递任何其他对象一样传递它们。这意味着您可以将其作为 bankrupt 传递给它函数,或者作为 bankrupt() 传递给它破产函数的结果。您还可以有多个可能的破产函数,其选择由包装函数定义。在这种情况下,您可能希望使用 bankrupt () 作为字典键,因为在初始化字典时选择了正确的函数。

还值得注意的是,这将在 python 的其他地方发生,例如函数初始化时的函数参数。


推荐阅读