前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2018年8月13日包的相对导入和绝对导入,包的本地发布和网络发布

2018年8月13日包的相对导入和绝对导入,包的本地发布和网络发布

作者头像
武军超
发布2018-09-27 11:24:39
5890
发布2018-09-27 11:24:39
举报

今天遇到的新单词: 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中没有定义任何代码的情况下,通过包名称操作包中的模块代码,那样会出错

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年08月13日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档