如何设置一个变量等于python中函数返回的值

use*_*509 0 python pygame sprite

我正在尝试设计一个系统,允许我在点击时将精灵移动到光标位置,类似于RuneScape,玩家将移动到屏幕上鼠标点击的位置.这是我的代码如下:

    for event in pygame.event.get ():
    if event.type == QUIT:
        pygame.quit ()
        sys.exit (0)

    elif event.type == KEYDOWN:
        if event.key == K_UP:
            Shrin_y -= 5
        elif event.key == K_LEFT:
            Shrin_x -= 5
        elif event.key == K_RIGHT:  
            Shrin_x += 5 
        elif event.key == K_DOWN:   
            Shrin_y += 5 
    elif event.type == MOUSEBUTTONDOWN:
        (Shrin_x, Shrin_y) = pygame.mouse.get_pos
        print pygame.mouse.get_pos

Surface.blit (Shrin, (Shrin_x, Shrin_y))

pygame.display.update ()
Run Code Online (Sandbox Code Playgroud)

注意:Shrin只是精灵的名字; 如果它让你高兴,只需用'精灵'替换代码中的所有Shrin实例.

那么,你如何保存返回的值pygame.mouse.get_pos(Shrin_x, Shrin_y)

Mar*_*cin 6

(Shrin_x, Shrin_y) = pygame.mouse.get_pos
Run Code Online (Sandbox Code Playgroud)

这一行应该给你一个错误,因为它试图将一个值(函数或方法对象)解包为两个变量.你想要的是:

(Shrin_x, Shrin_y) = pygame.mouse.get_pos()
Run Code Online (Sandbox Code Playgroud)

区别()在于是调用可调用对象的运算符.