为了账号安全,请及时绑定邮箱和手机立即绑定

修复因另一个变量而变化的变量的值

修复因另一个变量而变化的变量的值

摇曳的蔷薇 2024-01-24 21:01:22
假设我有一个全局变量,time每次窗口更新时,该变量都会根据某个 FPS(例如在 Pygame 中)增加 1 个单位。然后假设我有另一个根据 定义的变量time,如下所示:def function():    global time    t = time // 3    final = t + 100        if t < final:        pass    else:        pass我想要的行为是变量存储函数第一次调用时final的值,然后变成常量,同时与 一起运行。因此,并不总是比 提前 100 (这正是发生的情况),而是在函数第一次捕获时比 提前 100 ,然后保持该数字不变。那怎么办呢?tfinalttimefinalttt
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

您可以将final其设置为全局并检查是否已设置。


final = None

def function():

    global time, final


    t = time // 3

    if not final: final = t + 100  # update once

    

    if t < final:

        pass

    else:

        pass

您还可以在函数本身上创建属性。


def func():

    global time


    t = time // 3

    if not 'final' in dir(func): func.final = t + 100  # update once

    

    print(func.final)

    

    if t < func.final:

        pass

    else:

        pass


time=10

func()

time=20

func()

time=30

func()

输出


103

103

103


查看完整回答
反对 回复 2024-01-24
  • 1 回答
  • 0 关注
  • 31 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信