zoukankan      html  css  js  c++  java
  • python模块的导入详解

    一:一个小问题:什么是模块?

      我的理解是:有通用功能的文件的集

    二:为什么要使用模块?

      我们通常为了使自己以前写的东西保存下来,会把东西写入文件中保存下来,必要时我们把这些文件当脚本去执行,也可以把他们当做模块导入其他的模块中,实现了功能的存放利用。

    三:怎样导入自己的模块?

      自定义demo模块:

    print('in demo.py')
    money=100
    def read():
    print('in read',money)
    print(__name__)
    '''import demo
    def read():
    print('lxx')
    money=200
    demo.read()
    print(demo.money)
    过程:
    1.找到模块 2.(先从sys.modules(字典)里查看是否已经导入了模块,如果没有被导入,就依据sys.path路径寻找模块,找到了就导入)创建这个模块的命名空间 3.把文件中的名字都放到命名空间里
    import sys
    print(sys.modules.keys())#首先看看模块在不在'''
    关于模块的各个方法:
    # import time as tt  #给模块起别名 重命名之后之前的名字不能用了
    # print(tt.time())

    from time import sleep #单独从某个模块中导入一个方法或者是变量
    # from demo import read
    # read()

    # from demo import * #能导入全部的东西
    # # print(money)
    # # read()
    # # read2()

    # from math import pi #pi特定的:圆周率
    # print(pi)
    # pi=234
    # print(pi)
    #结果:
    # 3.141592653589793
    # 234
    五:把模块当做脚本执行:我们可以通过模块的全局变量__name__来查看模块名
      自己写的文件 demo  __name__  得到的是:main  
      但当你导入这个模块的时候 __name__  得到的就是demo名字  
      所以 这个方法可以:当我们想要一个方法是现在自己写的文件上,但不希望他使用在被导入的模块中的时候。
    六:导入模块是要注意的地方:
    1.所有模块导入应尽量往上写。
    2.导入循序最好是:内置模块--》扩展模块--》自定义模块
    3.检查模块不会重复被导入:sys.moudles
    4.从哪导入模块:sys.path
    5.from 模块名 import * 和 _all_ 是一对,没有这个变量就会导入所有的,如果有all就只导入all列表中的。


    
    
  • 相关阅读:
    使用webdriver出现的问题:[18796:1808:0730/131103.313:ERROR:install_util.cc(600)] Failed to read HKLMSOFTWAREPoliciesGoogleChromeMachineLevelUserCloudPolicyEnrollmentToken: 系统找不到指定的文件。 (0x2) DevTools lis
    1130 host is not allowed to connect to
    Mysql误删了root用户怎么办
    猫眼电影爬取
    sklearn之聚类的均值漂移算法
    sklearn之聚类K均值算法
    基于支持向量机的分类模型和回归模型案例
    超参数处理之网格搜素
    redis基础之有序集合应用
    Sklearn之支持向量机分类
  • 原文地址:https://www.cnblogs.com/lxx99/p/11779053.html
Copyright © 2011-2022 走看看