方法中给了属性,为什么运行还是没有这个属性,pycharm就报错了


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)

img

screen已经作为函数参数了,为什么又定义成成员变量

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7489099
  • 这篇博客你也可以参考下:如果设置了类属性,但是执行却找不到类属性,有可能是pycharm编辑器的锅
  • 除此之外, 这篇博客: 为什么使用 PyCharm 运行用例成功却无法退出?中的 用简单的代码复现 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 简单起见,下面这段代码(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 显示用例执行成功,却一直无法退出用例,如下图所示:

  • 您还可以看一下 郭宏志老师的玩转Pycharm课程中的 代码重构小节, 巩固相关知识点