一个关于类中self的问题

您所在的位置:网站首页 关于self-reliance的问题 一个关于类中self的问题

一个关于类中self的问题

2024-07-01 21:42| 来源: 网络整理| 查看: 265

def __init__(self, screen):         """初始化飞船并设置其初始位置"""         self.screen = screen                  # 加载飞船图像并获取其外接矩形         self.image = pygame.image.load('images/ship.bmp')         self.rect = self.image.get_rect()         self.screen_rect =  self. screen.get_rect() 另一种写法,最后一句不同:     def __init__(self, screen):         """初始化飞船并设置其初始位置"""         self.screen = screen                  # 加载飞船图像并获取其外接矩形         self.image = pygame.image.load('images/ship.bmp')         self.rect = self.image.get_rect()         self.screen_rect = screen.get_rect()

 最后一句self.screen_rect = screen.get_rect()   要不要self有什么区别的?我编译都可以通过,都显示有一个小飞船在底部中央。

此外,为什么self.rect = self.image.get_rect() 这里面的self却是必须要的,为什么呢?

CSDN中的random7  的解答:self.screen用的是本类对象的变量screen直接用screen用的是函数参数里面的screen因为有self,screen=screen,所以调用方式不一样,但是结果是一样的后面的image去掉self,解释器并不能找到image这个变量,所以报错self指代本类生成的一个当前对象 

pythontab论坛中的jackielu解答:

self.screen 和 self.imag 都是成员变量不同的是 self.screen是通过形参复制的 也就是传递的参数screen 而self.imag是通过函数内部自行赋值的编译通过是因为self.screen通过赋值之后 self.screen和screen是一回事 不会报错但是imag必须加self 是因为没有其他参数名字叫imag

在此,再次感谢两位的解答!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3