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
  • 相关阅读:
    解决ActiveX插件ZIndex属性无效问题
    XNA游戏开发之字符篇
    XNA游戏开发之滚动背景
    ExtJs之FormPanel篇
    独立Discuz头像编辑模块
    XNA游戏开发之2D游戏
    WPF系列之应用程序生命周期
    DiscuzX2.0在windows下的配置
    Silverlight之out of Browser模式
    使用VisualStudio2010连接CodePlex进行代码管理
  • 原文地址:https://www.cnblogs.com/xuanxuanlove/p/9656078.html
Copyright © 2011-2022 走看看