包的知识

Posted whylinux

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了包的知识相关的知识,希望对你有一定的参考价值。

# 把解决一类问题的模块放在同一个文件夹里,这个文件夹就是一个包
    # 在python2.7中一个文件夹下有__init__.py才可以称这个文件夹为一个包。

# 导入一个包时,会自动执行这个包下面的__init__.py文件

# 关于包的注意事项
    # 1.关于包相关的导入语句也分为import和form...import..两种,但是无论哪种,无论在什么位置
    # 在导入时都必须遵循一个原则:凡是在导入时带点的,点的左边都是必须是一个包,否则非法。可以带
    # 有一连串的店,如item.subitem.subsubitem,但都必须遵循这个原则
    # 2.对于导入后,在使用时就没有这种限制了,点的左边可以是包、模块、函数、类(他们都可以用点的方式调用自己的属性)
    # 3.对比import item和from item import name的应用场景
    # 如果我们想直接使用name那必须使用

# 使用绝对路径,不管在包内部还是外部,导入了就能用,但是不能挪动文件夹。  绝对路径必须会

# 相对路径
    # 可以随意动包,只要能找到包的位置,就可以使用包里的模块
    # 包里的模块如果想使用其他模块的内容只能使用相对路径,使用了相对路径就不能再包内直接执行了,但可以在包外面执行


# import os
# os.makedirs(‘glance/api‘)
# os.makedirs(‘glance/cmd‘)
# os.makedirs(‘glance/db‘)
# l = []
# l.append(open(‘glance/__init__.py‘, ‘w‘))
# l.append(open(‘glance/api/__init__.py ‘, ‘w‘))
# l.append(open(‘glance/api/policy.py‘, ‘w‘))
# l.append(open(‘glance/api/versions.py‘, ‘w‘))
# l.append(open(‘glance/cmd/__init__.py‘, ‘w‘))
# l.append(open(‘glance/cmd/manage.py‘, ‘w‘))
# l.append(open(‘glance/db/__init__.py‘, ‘w‘))
# l.append(open(‘glance/db/models.py‘, ‘w‘))
#
# map(lambda f:f.close(), l)


import glance
glance.api.policy.get()
glance.api.versions.create_resource(123)
glance.cmd.manage.main()
glance.db.models.register_models(12)




# 软件开发规范(非Web的)
    # 目录结构
        # soft
            # bin   # 写开始文件,程序入口,执行这个文件,整个项目程序则整体运行起来,主要给运维人员调用
                # start.py
            # conf  # 配置文件,改变这个文件中的值来改变陈旭的运行结果
                # config.ini
                # my_log_settings.py
                # settings.py
            # core  # 自己写的所有代码,都放入到这个目录下
                # core.py
            # db    # 数据库
                # alex_json
                # egon_json
            # lib   # 放自己写的包、模块等
                # read_ini.py
            # log   # 放执行程序过程中,想要记录下来的log日志
                # all2.log


# import os
# import sys
# sys.path.append(os.path.dirname(os.getcwd())) # 将当前路径的上一级路径添加到path中
# from core import core
#
# if __name__ == ‘__main__‘:
#     core.main()

 

以上是关于包的知识的主要内容,如果未能解决你的问题,请参考以下文章

片段还是支持片段?

线程学习知识点总结

Web前端培训知识分享:2种离线安装npm包的方法

片段 getActivity 不起作用

Flutterflutter doctor 报错Android license status unknown. Run `flutter doctor --android-licenses‘(代码片段

java学习--基础知识进阶第四天--笔记