飞机大战斗

  • 导入模块的三种方式

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

深拷贝和浅拷贝

  • 深拷贝

深拷贝是对于一个对象所有层次的拷贝(递归)

13012396-14828ff4a56c3d1a.png
13012396-768bfa54cad0c454.png
  • 浅拷贝

浅拷贝是对一个对象的顶层拷贝
通俗的理解就是:拷贝了引用,并没有拷贝内容

你可能感兴趣的:(飞机大战斗)