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: 自定义模块(自已定义的模块)

  • 相关阅读:
    Redis源代码分析(十三)--- redis-benchmark性能測试
    kvm中运行kvm
    umount.nfs device busy day virsh extend diskSpace, attachDisk
    ultravnc
    openNebula dubug
    maintenance ShellScripts
    virsh VMI deploy data serial xml
    cloud computing platform,virtual authentication encryption
    基于C 的libvirt 接口调用
    storage theory
  • 原文地址:https://www.cnblogs.com/kezi/p/12057686.html
Copyright © 2011-2022 走看看