【问题标题】:Dictionary auto-calling a function that is a value [duplicate]字典自动调用作为值的函数[重复]
【发布时间】:2020-08-13 04:53:03
【问题描述】:

对编程非常陌生,并尝试使用 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
}

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

任何指导将不胜感激。

【问题讨论】:

  • 好吧,你在叫它。
  • 你正在调用 bankrupt(),然后它的结果被放入字典中。
  • 我想我是!我想我真的应该问我如何只在我想调用这个函数的同时仍然能够使用相同的“spin = random.choice(list(wheel.values()))”调用其他值?跨度>
  • 您评论中的问题是重言式。你是程序员;该函数在您调用它时被调用。在您想要的程序中的任何位置调用它。您的帖子没有描述问题流程,也没有提供您的逻辑。请从intro tour 重复on topichow to ask
  • 感谢大家的意见以及如何成为 Stack Overflow 问题的更好用户。我想我通过简单地将值更改为“破产”并在另一个函数中使用 if 语句从该字典中选择一个随机值来实际调用该函数来解决了这个问题。如果这是一个补救问题,我深表歉意,但有时我会被最简单的事情难住。

标签: python function dictionary


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 2022-07-12
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 2018-02-16
    相关资源
    最近更新 更多