论飞机大战中为什么把飞机对象设置为主游戏类的属性
单纯用于记录自己的学习,有相同问题的鱼油可以瞅瞅{:5_102:}**python变量与对象:
启发源于文章:
https://www.cnblogs.com/my_captain/p/9063224.html
在python中变量是一个标签,这个标签贴在对象上(python中一切都是对象,可以是数字、可以是类创建出来的对象),我们要注意变量的作用域,也就是要注意这个标签什么时候被收回、我们什么时候不可以通过变量来访问到对象。有局部变量和全局变量!!!{:5_106:}
**案例:在一个类的其中一个方法中创建hero对象(实际上是创建一个对象,然后用hero变量引用这个对象),在另一个方法中访问这个对象。
class PlaneGame(object):
…………
def __creat_sprites():
hero = Hero()
def ……
hero.speed = 4 #想要在这里访问hero这个对象
这样是不行的,因为在__creat_sprits方法里创建的对象是局部变量,到外面以后就被回收了。
?那么如何解决呢{:5_94:}
我们把hero变成PlaneGame的属性,这样我们就能够在其他地方访问到这个对象了,hero变成属性的话作用域就是整个类,所以把hero改成self.hero就可以了。
页:
[1]