• day25 包语法


    1. 包
    就是一个文件夹. py2中包内必须要有一个__init__.py文件, 在python3中可以省略,但是最好都保留.
      __init__.py 当我们导入一个包的时候,默认执行这个包内的__init__.py
    if 条件:
    语句块
    一条语句 > 语句块 > 代码块(函数,类) > py文件(模块) > 包
      注意: 使用 from xxx import xxx 这种形式, import 后面不可以出现"点"
      导入包的执行过程:
    1. 判断该文件夹是否已经被导入。
    2. 如果没有被导入。开辟内存
    3. 在该内存中运行包的__init__.py文件。
    4. 给这个内存设置一个名字(包名)

    2. 相对导入和绝对导入
    相对导入: 相对于当前模块所在的包. 大坑: 使用的时候必须在包外面启动
      from . import xxx 当前文件夹引入模块
      from .. import xxx  引入上一层文件夹的模块
    # 注意: Python不允许你运行的程序导包的时候超过当前包的范围(相对路径)

    绝对导入: 根据包的根目录去导入内容


      
    全部都依赖于 sys.path
      添加路径方式: sys.path.append('添加的路径')


    3. 使用包要注意的东西

    尽量在包的外面启动程序.


    #创建一些包
    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)  # 一次性全部关闭文件句柄
  • 相关阅读:
    查看JAVA的class二进制文件的方法
    常见算法整理(二)
    常见算法整理(一)
    JAVA的Spring注入机制事例详解
    Spring的PropertyPlaceholderConfigurer事例应用
    eclipse 使用总结
    Mysql的union
    filter中的DelegatingFilterProxy使用事例
    Spring组件扫描<context:component-scan/>详解
    JAVA 注解的几大作用及使用方法详解
  • 原文地址:https://www.cnblogs.com/Knight-huang/p/9996537.html
Copyright © 2020-2023  润新知