zoukankan      html  css  js  c++  java
  • Python3-模块

    在Python中,模块是代码组织的一种方式,把功能相近的 函数 或 类 放到一个文件中,
    一个文件(.py)就是一个模块(module)
    模块名就是文件名去掉后缀.py

    这样做的好处是:

    1.提高代码的可复用、可维护性,一个模块编写完毕后,可以很方便的在其他项目中导入
    2.解决了命名冲突,不同模块中相同的命名不会冲突

    导入模块:
    1.import 模块名 / 模块名.变量 / 模块名.函数 / 模块名.类
    2.from 模块名 import 变量/函数/类
    在代码中可以直接使用 变量、函数、类
    3.from 模块名 import *
    该模块下的所有内容
    但是如果想限制获取的内容,可以在模块中使用__all__=[...]
    ([...]里面放可以访问到的内容)
    4.无论是import还是from...import的形式,都会将模块中的内容进行加载
    如果不希望其进行调用,就会用到__name__
    在自己的模块里面__name__叫:__main__
    如果在其他该模块中通过导入的方式调用的话:__name__:自己的模块名

    重点解释3,4
      自定义模块代码:(模块名:calculate.py)
     1 __all__ = ['test']
     2 
     3 
     4 def test():
     5     print("calculation 正在测试中……")
     6 
     7 def call():
     8     print("call方法正在被调用中....")
     9 
    10 print("__name__:",__name__)     # __name__: __main__
    11 
    12 if __name__=="__main__":
    13     # 此时的__name__ 即 __main__
    14     test()
      导入该模块:(模块名:模块_01.py)
     1 # 重点解释 3
     2 """
     3 from 模块名 import *
     4               该模块下的所有内容
     5               但是如果想限制获取的内容,可以在模块中使用__all__=[...]
     6               ([...]里面放可以访问到的内容)
     7 """
     8 
     9 from calculate import *
    10 
    11 if __name__ == "__main__":
    12     test()
    13      call()  # 此时 因为 calculate.py中 __all__ = ['test'],限制call的调用,所以无法直接使用
    14 
    15 """
    16     __name__: calculate
    17     calculation 正在测试中……
    18 """
    
    
      注意:
          
    from calculate import * 在使用中,如果显示无法导入该模块,可以通过将包设置为程序代码的根目录
          具体操作为:
            1.打开"文件"->设置 打开 Console下的Python Console,把选项(Add source roots to PYTHONPAT)点击勾选上
            2.右键点击自己的工作空间(即自己的文件目录),右键 找到 Mark Directory as ,选择 sources root 即可
         
          如果将
    calculate.py__all__改为__all__ = ['test','call'],那么模块_01.py中的call()可以正常使用
          注意两个.py文件中,__name__ 名字的变化,在在自己的模块里面__name__叫:__main__
          如果在其他该模块中通过导入的方式调用的话:__name__:自己的模块名
    
    
  • 相关阅读:
    【02】Nginx:基本配置和日志处理
    【01】Nginx:编译安装/动态添加模块
    【09】Jenkins:Pipeline 补充
    【08】Jenkins:关于发布
    【07】Jenkins:流水线(Pipeline)
    【06】Jenkins:Gitlab 自动触发构建以及钉钉通知
    【05】Jenkins:用户权限管理
    【04】Jenkins:基本功能补充说明
    【03】Jenkins:SonarQube
    【02】Jenkins:第一个项目
  • 原文地址:https://www.cnblogs.com/DemonKnifeGirl/p/13033281.html
Copyright © 2011-2022 走看看