Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 删除特定时间段后创建的类的实例_Python_Oop_Pygame - Fatal编程技术网

Python 删除特定时间段后创建的类的实例

Python 删除特定时间段后创建的类的实例,python,oop,pygame,Python,Oop,Pygame,我试图实现一个函数,该函数将删除在一段时间后创建的类的实例,但是我似乎无法实现这样的方法 我已经尝试过查找从创建类实例到当前时间所经过的时间,但这似乎不是很顺利,任何建议都将非常有用 我想这已经是两个问题了- 1) 如何“杀死”类实例/对象 这里已经很好地介绍了这一点: 2) 如何制作过期函数 您可以查看python模块“expiringdict”—— 但是,还有许多其他缓存实现的函数即将过期。 首先,您可以查看以下内容: 我没有设法在评论中提出你的第二个问题- 我不知道创建时间是与创

我试图实现一个函数,该函数将删除在一段时间后创建的类的实例,但是我似乎无法实现这样的方法
我已经尝试过查找从创建类实例到当前时间所经过的时间,但这似乎不是很顺利,任何建议都将非常有用

我想这已经是两个问题了-

1) 如何“杀死”类实例/对象

  • 这里已经很好地介绍了这一点:
2) 如何制作过期函数

  • 您可以查看python模块“expiringdict”—— 但是,还有许多其他缓存实现的函数即将过期。 首先,您可以查看以下内容:
我没有设法在评论中提出你的第二个问题-

我不知道创建时间是与创建的实例一起存储的,因此您需要执行以下操作:

# STDLIB Imports
import time

Class Circle(object):
    def __init__(self, diameter, x_coordinate, y_coordinate):
        self.creation_time = time.time()
        ...

my_circle = Circle(1,0,0)
time.sleep(1)
print('creation time: {}'.format(my_circle.creation_time))
age = time.time() - my_circle.creation_time
print('age: {}'.format(age))


确保已导入
时间
模块

  • 在类的
    \uuuu init\uuuu()
    函数中,将
    time.time()
    的值放入变量中,如
    self.sprowned\u time
  • 在类中创建一个名为
    can\u destroy()
    的方法。函数的代码如下:
    return time.time()>=self.sprowned\u time+
  • 完整代码:

    import time
    
    class MyClass:
        def __init__(self):
            self.spawned_time = time.time()
    
        def can_destroy(self):
            return time.time() > self.spawned_time + 6  # replace '6' with the seconds the class will exist for
    
    my_instance = MyClass()
    while True:
        if my_instance.can_destroy():
            # destroy your instance here
    

    通过在特定时间删除实例,您希望实现的实际目标是什么?这是一个奇怪的要求,你不能保证一个实例会被删除。我正计划制作一个在任意位置生成圆圈的游戏,如果你点击它,你会因此得到分数,如果你不点击(好吧,你一定会输)单击该圆以获取点的机会消失了,您将在该过程中失去一条生命。不要试图将其取决于删除一个实例。我确信Pygame有某种计时器机制,以及在游戏上下文中“销毁”对象的方法。创建圆时,启动计时器,并让计时器在一段时间后对对象调用“销毁”方法。感谢您的建议!真的很感谢他们,只是几个问题,我如何实现方法1,即我如何找到从创建一个圆的新实例到当前时间之间经过的时间?我把它作为一个类方法,或者只是一个普通函数,我不知道你的代码。我不知道创建时间是和创建的对象一起存储的,所以你需要自己来做类圆(对象):`def_uuinit_uu(self,diameter,x_坐标,y_坐标,color):`self.creation\u time=time.time()`……`感谢您的深入了解!这真的很有帮助,谢谢你,伙计这真的很好谢谢你!!