class HeroPlane(object):
def __init__(self, screen):
# 2创建player图像
self.player = pygame.image.load('./images/me1.png')
# 3将背景图片帖子窗口中 blit方法(贴入)第一个参数对象名称,第二个为坐标
self.screen.blit(background, (0, 0))
self.screen.blit(player, (480 / 2 - 102 / 2, 550))
player = HeroPlane(screen)
screen已经作为函数参数了,为什么又定义成成员变量
简单起见,下面这段代码(Python 2)包含了简单的线程逻辑和一个用例,来复现遇到的问题:
# coding: utf-8
import threading
import time
import unittest
def tick():
while True:
print('tick')
time.sleep(3)
t = threading.Thread(target=tick)
t.start()
class TestString(unittest.TestCase):
def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')
这段代码开启了一个线程,每隔 3 秒输出 tick。另一方面,定义了一个用例,判断字符串的upper()
方法。如果删除线程逻辑,用例能正常结束;反之,PyCharm 显示用例执行成功,却一直无法退出用例,如下图所示: