今天遇到的新单词: plugin n插件 core n核心 archive v存档 upload v上传 properly adv适当的 statement n声明
怎么控制英雄子弹的发射频率? 程序中表示一个数的时候尽量用一个变量去表示,因为需要修改数据的时候只需改变这个变量值就可以了, 而无需在代码的其他部分去修改数据,比较简单方便,类中表示一个数的时候可以追加两个属性用于限制,一个初值一个目标值。 控制子弹的发射频率用的就是这个,调用英雄的发射方法,在英雄中设置两个追加属性,当初值达到目标值的时候才调用发射方 法用于攻击,如果不加限制得话按一下空格键就会调用多次发射方法。
怎么跳转到第二关? 教训!我用的面向过程,代码的复用性根本没有,需要把第一关所有的代码重新写一遍,如果用面向对象的话只 需要创建对象传入相应的属性值即可。多看面向对象的代码,学会面向对象的思维。面向对象的编程思想在开始的 时候可能会麻烦一点,但是在后边项目的功能拓展性和代码的复用性都会提高。
让精灵斜着走的方法:在y轴有速度的基础上给x轴一个速度就可以实现。
怎么控制敌机子弹的发射频率:
为什么赢了之后把分数置零就会出现bug,over结束后图片的渲染有问题,因为是等几秒之后就能正常显示,所以over结束 那个地方的代码需要修改。
继承父类的真正作用?生成图片和让图片动起来
*************************************************
在不同的人数阶段要学习不同的东西,开始要学习应用性的,走向管理之后要学习基础性的 写程序的时候尽量提高代码的可读性和代码的复用性
a = 1000 id(a)是查看a的内存地址
python setup.py install 安装的压缩包不能通过pip uninstall 模块名称进行卸载, 只能通过到文件内直接删除文件才能彻底删除,通过pip install 模块名称的可以通过uninstall进行卸载
********************************************** 压缩后的包本地发布和网络发布的步骤: 在一个已经开发好的包文件里面(已经由__init__文件)建立一个setup.py模块,setup模块中写包的信息:
# 引入构建包信息的模块 from distutils.core import setup # 定义发布的包文件的信息 setup( name=“damu_pkg01”, # 发布的包文件名称 version=”1.0”, # 发布的包的版本序号 description=”我的测试包”, # 发布包的描述信息 author=”大牧莫邪”, # 发布包的作者信息 author_email=“ ” # 作者联系邮箱信息 py_modules=[‘__init__.py’,’..’,..] #发布的包中的模块文件列表,不用写setup )
执行当前程序包文件的构建操作命令:按照标准格式组织包中的所有数据文件 python setup.py build REMARK:构建完毕的文件 可以通过python setup.py install命令可以直接把构建完毕的文件当成第三方模块进行安装到本机
执行命令进行包的打包发布 python setup.py sdist REMARK:打包的文件,主要是方便进行网络传输,打包之后会在dist中创建包含 包中所有信息的tar.gz压缩包文件;该文件就可以通过git等方式提交给对应的开源组织发布你的自定义模块了!
在网络发布的步骤: 然后在Pypi这个网站上进行注册,然后在终端安装第三方模块twine:用于上传我们打包的项目文件 pip install twine 上传项目 twine upload dist/*
然后就可以在Pypi网站上查找到我们自己发布的模块,并且可以通过pip 进行下载:pip install 模块名
******************************************** 相对引入和绝对引入 有了包之后才有了相对引入f这种引入方式的存在意义 绝对引入: 用到绝对引入的时候需要mark一下设为源文件夹,以下两种都是绝对引入的方式: import plane from plane import test1 用import可以直接引入模块,用法:import 包名 也可以直接引入包里面的模块,用法;import 包名.模块名,用import引入最低级也要是模块级别的文件
相对引入: 相对引入的命令必须要在终端中才能运行,输入的命令是:python -m 父目录名.main.py,并且引入的东西都需要 先在__init__文件中事先定义才能正常运行!在同一个包文件下引用包内的其他模块可以直接用不需要在__init_里面写东西。 相对引入直接引入模块: from . import test1
1.相对引入直接引入包名: from . import 包名 :
2.相对引入直接引入包中的模块 from .plane import utils 直接引入模块名也需要在__init__文件中声明 print(utils.msg) 这个是填写impot后边的名称
3.相对引入可以直接引入属性名/方法名/类型名称 from .plane.utils import func func()
#这是相对于父目录进行的相对引入,执行的时候不能直接在本模块中执行, 因为在本模块中执行的话python解释器就会认为main.py就是顶层模块!是唯一一个,不能再相对引入, 所以为了不报错,采用这种引用方式的正确的执行命令是在终端中输入:python -m 父目录名.main.py,找到参照物才能正确执行 有了from的引入方式之后可以引入比模块名更加细致的东西,比如可以引入方法名/属性名/类名 from .包名 import 模块名, 必须要在终端运行
引入的是包的__init__文件中的内容,所以如果想用这种方式运行显示什么内容,需要先在 __init__文件中进行定义或者引入。__init__模块中可以是下面的内容: _all__ = ["utils"] 告诉你你可以引入什么模块 name = "msg" from . import utils 备注:切记~不要在包声明文件__init__.py中没有定义任何代码的情况下,通过包名称操作包中的模块代码,那样会出错