zoukankan      html  css  js  c++  java
  • 模块

    模块

    模块
    1、定义:
    模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能)本质就是.py结尾的python文件
    (文件名为:text1.py ,对应的模块名为:text1)
    包:本质就是一个目录(必须带有一个_init_.py文件 )

    2:使用(导入)方法;
    import module_name
    import module1_name,module2_name


    from module_kezi import * 导入所有的文件的内容,慎用

    form module_kezi import m1,m2,m3

    from module_kezi import logger as logger

    3、import实际本质(路径搜索和搜索路径)

    运行,解释了一遍
    是的把python 文件 进行解释一遍。(import test test='test.py all code')
    (from test import name name='code')

    import module_name----->>moudule-name.py------j
    导入包实际就是,执行包下的_init_.py

    导入包的例子,建立一个目录date5的package ,在date5下面建立一个test2文件 。然后再建立一个test1文件的文件,test1怎么通过包的形式来调用test2文件代码

    思路,首先需要了解,调用包实际就是调用-init_.py的这个文件,因此在_init中要加入test2的模块调用。

    然后通过_init文件再到test2这个文件

    test2:
    
    name="kezi"
    def test():
        print("welcom to my home")
    
    test1:
     
    
    import date5
    date5.test2.test()
    
    
    _init_:
    
    from  . import test2
    
    打印结果
    welcom to my home

    例2    调用同级目录下的子文件使用方式:C1调用a1.py 和b1.py

    a1.py
    def kezi():
        print("welcom to my home a1")
        return
    
    b1.py
    def kezi2():
        print ("welcom to my b2")
        return
    
    c1.py
    
    from A.a1 import kezi
    from  B.b1 import kezi2
    kezi()
    kezi2()
    
    打印结果:
    welcom to my home a1
    welcom to my b2

    例3  调用上级目录下的子文件:b1调用a1.py 

     

     b1.py

    def kezi2():
        print ("welcom to my b2")
        return
    from A.a1 import kezi
    kezi()
    
     打印结果:
    welcom to my home a1

     例4 调用上级目录的文件;b1调用c1;

    import sys,os
    
    def kezi2():
        print ("welcom to my b2")
        return
    from A.a1 import kezi
    from c1 import kezi3
    
    kezi()
    kezi3()
    打印结果
    
    
    welcom to my home a1
    welcome to my c1

    4、导入优化方法:


    >>> import sys,os
    >>> sys.path
    ['', 'C:\Users\Administrator\Anaconda3\python35.zip',
    'C:\Users\Administrator\Anaconda3\DLLs', 'C:\Users\Administrator\Anaconda3\lib',
    'C:\Users\Administrator\Anaconda3', 'C:\Users\Administrator\Anaconda3\lib\site-packages',
    'C:\Users\Administrator\Anaconda3\lib\site-packages\Sphinx-1.4.6-py3.5.egg',
    'C:\Users\Administrator\Anaconda3\lib\site-packages\win32',
    'C:\Users\Administrator\Anaconda3\lib\site-packages\win32\lib',
    'C:\Users\Administrator\Anaconda3\lib\site-packages\Pythonwin',
    'C:\Users\Administrator\Anaconda3\lib\site-packages\setuptools-27.2.0-py3.5.egg']

    print(os.path.abspath(_file_)) #绝对路径
    x=os.path.dirname(os.path.dirname(os.path.abspath(_file_))) #获取目录
    sys.path.append(x)

    import sys
    pritn (sys.path)
    import module_kezi

    5:模块怎么进行分类:
    a: 标准库(系统自带的sys,os等)
    b: 开源模块(gethub上面的,其他人写的,放到网上的,可以下载)
    c: 自定义模块(自已定义的模块)

  • 相关阅读:
    git 远程仓库 and 分支管理
    oracle 导入导出dmp
    sql if else 用法
    设置session超时的三种方式
    eclipse定制工具栏,修改工具栏
    cxf实例异常
    js 表格插入指定行
    iframe 调用父页面元素
    iframe页面刷新
    frame 和 iframe
  • 原文地址:https://www.cnblogs.com/kezi/p/12057686.html
Copyright © 2011-2022 走看看