Python17 模块

Posted thloveyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python17 模块相关的知识,希望对你有一定的参考价值。

模块

  • 模块:在Python中,一个.py文件就称之为一个模块(Module)
  • python所有的内置函数:https://docs.python.org/3/library/functions.html
  • 包名:为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package)
  • 实例:
    技术图片
  • 引入包:import 包名.模块名
  • 创建自己的模块时,要注意:
    模块名要遵循Python变量命名规范,不要使用中文、特殊字符;
    模块名不要和系统模块名冲突,最好先查看系统是否已存在该模块,检查方法是在Python交互环境执行import abc,若成功则说明系统存在此模块。
    - - -
  • 使用模块:
    • sys:系统模块、
    • 实例:
      ```
      #!/usr/bin/env python3 # 让代码能在unix/linux/mac上运行
      # -- coding: utf-8 -- # 指定Python编码utf-8

      ‘write test module‘ # 模块的文档注释

      author = ‘Thloveyl‘ # 使用__author__变量把作者写进去,这样当你公开源代码后别人就可以瞻仰你的大名;

      import sys # 导入sys模块

      ‘‘‘
      导入sys模块后,我们就有了变量sys指向该模块,利用sys这个变量,就可以访问sys模块的所有功能。

      sys模块有一个argv变量,用list存储了命令行的所有参数。argv至少有一个元素,因为第一个参数永远是该.py文件的名称,

      ‘‘‘
      def test(): # sys.argv 获取到用户输入的数据,并放在列表中
      if len(sys.argv) == 1:
      print("Welcome to Python Modules")
      elif len(sys.argv) == 2:
      print(‘%s,Welcome !‘% sys.argv[1])
      else:
      print(‘this new module‘)

      ‘‘‘
      当我们在命令行运行do_module模块文件时,
      Python解释器把一个特殊变量__name__置为__main__,
      而如果在其他地方导入该do_module模块时,if判断将失败,因此,
      这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,
      最常见的就是运行测试。
      ‘‘‘
      if name == ‘main‘:
      test()
      ```
    • 运行结果:
      技术图片
      - - -
  • 作用域:在一个模块中,我们可能会定义很多函数和变量,但有的函数和变量我们希望给别人使用,有的函数和变量我们希望仅仅在模块内部使用。在Python中,是通过_前缀来实现的。
    • 公开变量:xx正常的函数和变量名是公开的(public),可以被直接引用,比如:abc,x123,PI等;
    • 特殊变量: __xx__,这样的变量是特殊变量,可以被直接引用,但是有特殊用途,可使用__doc__访问文档注释
    • 非公开变量:_xx,__xx,这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc,__abc等;
    • private函数和变量“不应该”被直接引用,而不是“不能”被直接引用,是因为Python并没有一种方法可以完全限制访问private函数或变量,但是,从编程习惯上不应该引用private函数或变量。
    • private访问变量实例:
      ```
      def _age(name): # 私有函数
      return (name + ‘18岁‘)

      def _height(name): # 私有函数
      return (name + ‘身高180‘)

      def get_prevate(name): # 公开函数
      if name == "王富贵儿":
      return _age(name) # 返回私有函数
      elif name == "李星云":
      return _height(name)
      else:
      return ‘查无此人‘
      print(get_prevate("李星云"))
      ```
    • 外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义为public。
      - - -
  • 安装第三方模块:一般来说,第三方库都会在Python官方的pypi.python.org网站注册,要安装一个第三方库,必须先知道该库的名称,可以在官网或者pypi上搜索,比如Pillow的名称叫Pillow
    • 安装:pip install pillow 如果同时存在Python3与Python2 需指定 pip3
    • Anaconda:这是一个基于Python的数据处理和科学计算平台,它已经内置了许多非常有用的第三方库,我们装上Anaconda,就相当于把数十个第三方模块自动安装好了,非常简单易用。下载后直接安装,Anaconda会把系统Path中的python指向自己自带的Python,并且,Anaconda安装的第三方模块会安装在Anaconda自己的路径下,不影响系统已安装的Python目录。安装好Anaconda后,重新打开命令行窗口,输入python,可以看到Anaconda的信息:
    • 模块搜索路径:当我们试图加载一个模块时,Python会在指定的路径下搜索对应的.py文件;默认情况下,Python解释器会搜索当前目录、所有已安装的内置模块和第三方模块,搜索路径存放在sys模块的path变量中
        如果我们要添加自己的搜索目录,有两种方法:   
        一是直接修改sys.path,添加要搜索的目录:
        import sys
        sys.path.append('/Users/michael/my_py_scripts')
        这种方法是在运行时修改,运行结束后失效。
        第二种方法是设置环境变量PYTHONPATH,该环境变量的内容会被
        自动添加到模块搜索路径中。设置方式与设置Path环境变量类似。
        注意只需要添加你自己的搜索路径,Python自己本身的搜索路径不受影响。

以上是关于Python17 模块的主要内容,如果未能解决你的问题,请参考以下文章

PYTHON-DAY17-模块

饮冰三年-人工智能-Python-17Python基础之模块与包

Python之旅的第17天(re模块logging模块)

Python17个常用内置模块总结

第17课 python 模块

Python17个常用内置模块总结