一个关于类中self的问题 |
您所在的位置:网站首页 › 关于self-reliance的问题 › 一个关于类中self的问题 |
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 |