zoukankan      html  css  js  c++  java
  • python学习笔记 day21 包的进阶

    创建包

    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/welcome.py','w'))
    L.append(open('glance/cmd/login.py','w'))
    L.append(open('glance/cmd/__init__.py','w'))
    L.append(open('glance/db/__init__.py','w'))
    L.append(open('glance/db/bye.py','w'))
    map(lambda f:f.close(),L)

    运行结果:

    使用相对路径导入包(在其他包以及相应模块中也只能以相对路径导入)

    这里需要说明. 指的当前目录(就是当前的这个py文件所在的文件夹),..值得是上一级目录(就是当前py文件所在的文件夹(这是当前目录)的上一级文件夹)

     我们先来看一下各个文件中的内容:

    要运行的01.py中的内容:

    glance包下面的__init__,py文件:

    api包下面的两个文件:

     

    cmd包下面:

    bd包下面:

     

    接下来 在01.py中运行:

    所以使用相对路径的方法也是可以的~

    使用相对路径的好处就是当我们想要把glance的目录移动了,然后再运行01.py 就不行了,现在的目录结构是这样的:

     也就是01.py 要运行的文件是直接放在week5下面 而glance放在day07文件夹(与01.py同级)下面,这时候我们在01.py中导入glance 是绝对不行的 我们可以在01.py中打印sys.path 发现这个路径是week5 也就是导入模块时,会在week5下面找,然而这样是找不到glance 因为glance在day07下面,所以我们可以这样:

    import sys
    print(sys.path)
    from day07 import glance  # 从day07下面导入glance 而day07在week5下面是可以直接被找到的
    glance.api.welcome.func1()

    运行结果:

     然后这个时候,由于其他包下面的__init__.py文件都是按照相对路径写的只要可以找到glance 其他的就都可以找到了~

    talk is cheap,show me the code
  • 相关阅读:
    2020/11/06 模拟赛 T1
    2020/11/04 模拟赛 圆与圆之间的距离是不能一概而论的
    2020/11/04 模拟赛 经典字符串问题
    2020/11/03 模拟赛 偶数
    2020/11/03 模拟赛 斐波
    LG P7078 贪吃蛇
    js类和对象,继承(6中方式)
    js类和对象,继承(class语法题)
    网站
    品优购项目1- iconfont使用教程:
  • 原文地址:https://www.cnblogs.com/xuanxuanlove/p/9656078.html
Copyright © 2011-2022 走看看