飞机大战
- 导入模块的三种方式
import pygame
from 模块名 import *(代表所有)
from 模块名 import 模块里定义的函数名
*号在同时调用两个模块的时候 里面有相同的函数时 后者会给前者覆盖掉
- 在pygame这前安装了个pip3
#安装pygame
sudo pip3 install pygame
#验证安装
python3 -m pygame.examples.aliens
- 创建的精灵组
def __create_sprites(self):
bg1=BackGroundSprite()
bg2=BackGroundSprite(True)
self.enemy_group=pygame.sprite.Group()#创建敌机精灵组
self.bg_group=pygame.sprite.Group(bg1,bg2)
self.hero=Hero()#英雄组
self.hero_group=pygame.sprite.Group(self.hero)
私有属性添加getter和setter方法
class siyou(object):
def __init__(self):
self.__money = 0
def getsiyou(self):
return self.__money
def setsiyou(self, value):
if isinstance(value, int):
self.__money = value
else:
print("error:不是整型数字")
- 结果
In [1]: from get_set import siyou
In [2]:
In [2]: a = siyou()
In [3]:
In [3]: a.money
Out[3]: 0
In [4]: a.money = 100
In [5]: a.money
Out[5]: 100
In [6]: a.getsiyou()
Out[6]: 100
==和is
- is是比较两个应用是否指向了一个对象
- ==是比较两个对象是否相等
a=[1,2,3]
b=a
a==b
True
a is b
True
import copy
c=copy.deepcopy(a)
a==c
True
a is c
False
深拷贝和浅拷贝
- 深拷贝
image.png深拷贝是对于一个对象所有层次的拷贝(递归)
- 浅拷贝
浅拷贝是对一个对象的顶层拷贝
通俗的理解就是:拷贝了引用,并没有拷贝内容
网友评论