zoukankan      html  css  js  c++  java
  • python基础之模块导入

    1.定义

    模块:本质就是以.py结尾的Python文件(例如:文件名为test.py,对应的模块名为:test),用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能)。

    包:用来从逻辑上组织模块,本质就是一个目录(必须带一个__init__.py文件)

    2导入方法

    (1)import module_name 或者 import module_name1,module_name2(导入多个模块)

    实例1:

    创建一个模块,文件名字为module_test.py

    #Author:Anliu
    
    bar="ERROR"
    def logging():
        print("this is a test logging...")
    
    def printing():
        print("this is a test printing...")
    
    def reading():
        print("this is a test reading...")

    将module_test.py文件导入到test_file1.py文件中

    #Author:Anliu
    import module_test
    print(module_test.bar)
    module_test.reading()

    执行结果如下:

    ERROR
    this is a test reading...
    
    Process finished with exit code 0

    (2)from module_name import *

    实例2:

    将实例1中的module_test模块导入到test_file2.py中

    #Author:Anliu
    from module_test import *
    
    print(bar)  #此种方法导入模块在使用模块中的方法或者变量等时,不再需要module_name.funcation了,直接应用即可。
    logging()

    向test_file2.py文件中添加一个与模块同名的方法。

    #Author:Anliu
    from module_test import *
    
    print(bar)  #此种方法导入模块在使用模块中的方法或者变量等时,不再需要module_name.funcation了,直接应用即可。
    logging()
    printing()
    def printing():
        print("this is a printing function from test_file2.py")
    
    printing()

    执行结果

    ERROR
    this is a test logging...
    this is a test printing...
    this is a printing function from test_file2.py
    
    Process finished with exit code 0

    由此可见,此种导入模块,当模块的方法与文件当前的方法有冲突时,执行的结果将不准确,这与import的本质有关。于是乎就产生了下种导入方式。

    (3)from module_name import function as alias

    实例3:将实例1中的module_test模块导入到test_file3.py文件中

    #Author:Anliu
    from module_test import printing as mod_printing
    
    def printing():
        print("this is a test from test_file3.py")
    
    printing()
    mod_printing()

    执行结果如下:

    this is a test from test_file3.py
    this is a test printing...
    
    Process finished with exit code 0

    这也使用别名的方法即可实现对模块中方法的调运。

    3.import的本质

    导入模块的本质就是把python文件解释一遍。

    导入包的本质就是执行包下的__init__.py文件。

    4.路径查找

    在不同目录下的模块导入时,需要路径的切换。

    实例4:

     

     

    #Author:Anliu
    import sys,os
    print(sys.path)
    print(os.path.abspath(__file__))
    print(os.path.dirname(os.path.abspath(__file__)))
    print(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
    x=os.path.dirname(os.path.dirname(__file__))
    sys.path.append("x/module_test")

     

  • 相关阅读:
    visual studio 注释
    EF Core导航属性
    【转】前端UI框架小汇总
    C#三种定时器的实现
    【转】自学MVC看这里——全网最全ASP.NET MVC 教程汇总
    【转】C#进阶系列——WebApi 接口参数不再困惑:传参详解
    【转】c# WebApi之解决跨域问题:Cors
    优秀.NET开源项目
    Linux简介及最常用命令
    C#中使用Socket实现简单Web服务器
  • 原文地址:https://www.cnblogs.com/anttech/p/11810474.html
Copyright © 2011-2022 走看看