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
     

  • 相关阅读:
    msql查询指定日期
    NLP常见任务
    KTT条件及其理解
    距离度量--熵,KL散度,JS散度,GAN相关应用
    常见的激活函数
    分类问题的判别标准
    最大似然估计
    损失函数
    【ML-10】多分类及多标签分类算法
    【ML-9】支持向量机--实验scitit-learn SVM
  • 原文地址:https://www.cnblogs.com/absoluteli/p/13971099.html
Copyright © 2011-2022 走看看