zoukankan      html  css  js  c++  java
  • Python--模块引用

    每个模块都有一个__name__属性,当其值是'__main__'时,表明该模块自身在运行,否则是被引入。
     
    内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回
    import fibo, sys
    dir(fibo) #['__name__', 'fib', 'fib2']
     
     
    比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。
    目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包,最简单的情况,放一个空的file:__init__.py就可以了。
    导入语句遵循如下规则:如果包定义文件 __init__.py 存在一个叫做 __all__ 的列表变量,那么在使用 from package import * 的时候就把这个列表中的所有名字作为包内容导入。
    作为包的作者,可别忘了在更新包之后保证 __all__ 也更新一下。
     
     
    sys模块
    sys.argv 是一个包含命令行参数的列表。
    sys.path 包含了一个 Python 解释器自动查找所需模块的路径的列表。
    import os
    
    print '***获取当前目录***'
    print os.getcwd()
    print os.path.abspath(os.path.dirname(__file__))
    
    print '***获取上级目录***'
    print os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
    print os.path.abspath(os.path.dirname(os.getcwd()))
    print os.path.abspath(os.path.join(os.getcwd(), ".."))
    
    print '***获取上上级目录***'
    print os.path.abspath(os.path.join(os.getcwd(), "../.."))
     
    在导入一个包的时候,Python 会根据 sys.path 中的目录来寻找这个包中包含的子目录。
     
    导入自写模块
    1. 被调用文件和当前需要调用的文件在同一目录下
    folder
    ----test_a.py
    ----test_b.py
    ----start.py
    在start.py 下引入test_a.py的方法:
    import test_a 或 from test_a import *
     
    2. 被调用文件和当前需要调用的文件在不同文件夹目录
    folder_a
    ----test_a.py
    ----test_b.py
    folder_b
    ----start.py
     
    在start.py 下引入test_a.py的方法:
    1.先把folder_a 由普通文件夹改成包package:新建一个__init__.py 的空文件
    2.start.py如下:
    import sys
    sys.path.append("..")      #这里引用的上级目录,如果是其它目录:sys.path.append('complete_path')
    from folder_a.test_a import *    # 或 import folder_a.test_a
     

  • 相关阅读:
    python自定义ORM并操作数据库
    python 元类理解
    Python中type()详解:动态创建类
    Centos7安装教程
    数据库建模:学生信息系统搭建实验
    数据库索引、视图与触发器
    用python批量插入数据到数据库中
    制作一个简单的部门员工知识分享的python抽取脚本
    【Mybatis】XML配置实现增删改查
    NIO,AIO,BIO
  • 原文地址:https://www.cnblogs.com/absoluteli/p/13971099.html
Copyright © 2011-2022 走看看