• Python基础笔记系列十:模块


      本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!

    • 模块

      #1.类比于java中的jar包,模块能让你能够有逻辑地组织你的Python代码段。
      #2.把相关的代码分配到一个模块里能让你的代码个更好用,更易懂。
      #3.模块也是Python对象,具有随机的名字属性用来绑定或引用。
      #4.简单来说,模块就是一个保存了Python代码的文件。模块能自定义函数,类和变量。模块里也能包含可执行的代码。

    • 模块引入
      python提供了很多第三方的模块可以引入,python标准安装包里的模块称为标准库。模块的引入主要有以下三种:
      ①引入模块
      import moduleName

      ②引入模块下的函数

      from moduleName import function1 , function2 ,...

      ③引入模块的所有函数

      from moduleName import *

      其中第一种引入模块的方式在使用模块时需要带上模块名(moduleName.methodName),如math.sqrt();
      引入模块后就可以使用模块里的方法了。

      例子:计算25的平方根

      1 import math
      2 r = math.sqrt(25)
      3 print r

      如果模块或者函数名字过长可以在import后使用as给该模块取个假名,之后可以通过“假名.函数”来使用模块里的函数。
      例子:

      1 import webbrowser as myweb
      2 myweb.open_new_tab("http://www.cnblogs.com/hyyq/")
    • 使用自定义模块
      任何Python程序hello.py(无主函数)都可以作为一个模块被另外一个Python程序test.py引入使用。
      例子:
      hello.py :

      1 #incoding:utf-8
      2 def hello():
      3     print 'import this module!'
      4 def bokeyuan():
      5     print 'http://www.cnblogs.com/hyyq/'

      test.py :

      1 #incoding:utf-8
      2 import hello #文件名作为模块名,不需要后缀.py哦~
      3 hello.hello()
      4 hello.bokeyuan()

      输出:

      1 import this module!
      2 http://www.cnblogs.com/hyyq/

      以上引入模块的程序和模块程序需要在同一目录下,局限性很大。如果想让模块可以被任何文件引用,可以调用os.path.append(模块文件所在目录)添加模块所在目录到系统里去。
      例子:假设文件结构

      ~/|模块    #文件夹模块
      —————|test.py #调用‘hello’模块的程序文件
      —————|hello #hello文件夹
      ———————|hello.py #模块文件
      ———————|hello.pyc #模块字节码文件

      test.py:

      #incoding:utf-8
      import sys 
      sys.path.append('./hello') #当前目录下的hello文件夹
      import hello #文件名作为模块名,不需要后缀.py哦~
      hello.hello()
      hello.bokeyuan()

      这种将文件目录加入系统里这种方式也有局限性,并且用起来也很麻烦。一般地,通用的告知python解释器到哪儿去找模块文件的方法有三:
      ①PYTHONPATH环境变量里增加模块文件路径
      ②.pth文件,文件里列出所有模块文件所在路径(放在python安装目录下即可)
      ③模块打包(推荐)

  • 相关阅读:
    十分钟了解HTTPS协议
    浅谈程序员的学历
    浅谈前后模板引擎的利与弊
    简单理解预加载技术
    简单理解懒加载技术
    C#.NET里面抽象类和接口有什么区别
    Select count(*)、Count(1)、Count(0)的区别和执行效率比较
    c#中decimal ,double,float的区别
    C#使用log4net记录日志
    SQLServer无法打开用户默认数据库 登录失败错误4064的解决方法
  • 原文地址:https://www.cnblogs.com/hyyq/p/8955518.html
Copyright © 2020-2023  润新知