Python 当我给出一个方法作为参数时,属性就消失了

Python 当我给出一个方法作为参数时,属性就消失了,python,methods,Python,Methods,我在寻找答案,但没有人适合我的问题。。。 我试着制作一个计时器,它应该每n次调用一个给定的函数,但它不起作用,当我调试我的对象时,应该存储要调用的函数的属性callback\u function就消失了 代码如下: import pygame class Timer: def __init__(self, time, callback_function, repeat=False, how_many=0, infinite=False, *args,

我在寻找答案,但没有人适合我的问题。。。 我试着制作一个计时器,它应该每n次调用一个给定的函数,但它不起作用,当我调试我的对象时,应该存储要调用的函数的属性
callback\u function
就消失了

代码如下:

import pygame

class Timer:
    def __init__(self, time, callback_function, repeat=False, how_many=0,
                 infinite=False, *args, **kwargs):
    self.now = pygame.time.get_ticks()
    self.time = time
    self.callback_function = callback_function
    self.repeat = repeat
    self.how_many = how_many
    self.infinite = infinite
    self.args = args
    self.kwargs = kwargs
    self.active = True

    def update(self):
        if pygame.time.get_ticks() - self.now >= self.time and self.active:
            self.callback_function(self.args, self.kwargs)

            if((self.how_many == 0 and not self.infinite) or 
               self.repeat == False):
                self.active = False
                return False
            elif not self.infinite:
                self.how_many -= 1

            self.now = pygame.time.get_ticks()
            return True
更多代码:

import pygame

from api.ActorSprite import ActorSprite
from api.Timer import Timer

class ActorTest(ActorSprite):
    def __init__(self):
        super().__init__(pygame.image.load("assets/mario.jpg").convert())

        self.add_timer(timer = Timer(2000, self.print_test,repeat=True,how_many=2))

    def draw(self, screen):
        super().draw(screen)
        self.update_timers()

    def print_test(self, *args, **kwargs):
        print("Hello World!")
没有错误消息,只是没有调用函数
print\u test
。但是当我不使用超类
ActorTest
来管理
计时器时,它就工作了……我不明白

以下是我的调试器的屏幕截图:


我不确定这是否真的是您的问题的原因,而是:

你应该简单地写

self.callback_function = callback_function

好的,很抱歉,这只是我的调试器的一个bug,问题不在那里。现在很好用,谢谢

“消失”…..?代码不是一个完整的示例。请编辑问题并包含您看到的完整错误消息,好吗?您在问题中发布的代码是否与编辑器或IDE中的代码完全相同?我想
update
函数必须再缩进一级,但我不确定这是否只是StackOverflow编辑器的问题。我这样写的,并认为错误可能来自那里,但没有。
self.callback_function = callback_function