Python变量和基本数据类型​

内容纲要

一 模块

每一个 Python 脚本文件都可以被当成是一个模块。模块以磁盘文件的形式存在。当一个模块变得过大,并且驱动了太多功能的话,就应该考虑拆一些代码出来另外建一个模块。模块里的代码可以是一段直接执行的脚本,也可以是一堆类似库函数的代码,从而可以被别的模块导 入(import)调用。模块可以包含直接运行的代码块、类定义、 函数定义或这几者的组合。

推荐所有的模块在Python模块的开头部分导入。而且最好按照这样的顺序:

  • Python标准库模块
  • Python第三方模块
  • 应用程序自定义模块:

    import

    在Python中用关键字import来引入某个模块,比如要导入模块time,就可以在文件最开始的地方用import time来引入

      #语法
      import module1
      import module2[
      ......
      import moduleN]
      # 也可以在一行内倒入多个模块
      import module1[, module2[,... moduleN]]
      '''
      import 模块名[,模块名]。。。
      导入整个模块
      通过 模块名.方法名 调用
      '''
      import time
      print('start')
      # sleep(5)  错误调用
      time.sleep(5)  #正确调用
      print('stop')、
    
      '''

    from…import

    Python的from语句让你从模块中导入一个指定的部分到当前命名空间中

      #语法
      from modname import name1[, name2[, ... nameN]]
      from 模块名 import 函数名
      从指定的模块中导入指定的部分
      '''
      from time import sleep
      print('start')
      sleep(5)
      print('stop')

    from…import *

    导入一个模块的所有内容

    #语法
    from modname import*
    #导入模块中的所有内容
    from math import *
    print(ceil(1.1))  #向上取整
    print(floor(1.1)) #向下取整

    扩展import语句(as)

    有时候你导入的模块名称已经在你的程序中使用了, 或者你不想使用现有的名称。可以使用一个新的名称替换原始的名称。(给导入的模块去别名)

    #实列:
    import pandas #原始的名称
    import pandas as pd #使用as重新命名
    #给导入的模块取别名
    import math as m
    print(m.ceil(1.1))  #向上取整
    print(m.floor(1.1)) #向下取整
    from math import ceil as c  #不建议,函数名组好简化或者区别名
    print(c(1.1))  #向上取整

    模块制作

    模块调用

    既然可调用系统模块,那么可不可以自己创建一个模块,然后通过另一个程序调用? 当然可以,对于一个软件项目来说不可能把所有代码都放在一个文件中实现,它们一般会按照一定规则在不同的目录和文件中实现。

    1.同级目录

    import test   #引入同级目录中的test模块
    print(test.test_add(2,3))
    from test import test_add
    print(test_add(2,3))

    2.跨模块引入(模块为兄弟目录)

    import study.test2  #模块名.函数名
    print(study.test2.test2_add(2,3))
    from study import test2
    print(test2.test2_add(2,3))
    from study.test2 import test2_add
    print(test2_add(2,3))

    3.跨模块引入(模块为父亲兄弟目录)

    使用sys.path.append('..\')或者sys.path.append('../') #返回上一级目录 (相对路径和绝对路径)

    4.覆盖标准模块

    from msg import math   #自定义的模块
    print(math.ceil(1.1))  #向上取整
    print(math.floor(1.1))
    math.getInfo()

    三 dir()函数

    dir()函数一个排好序的字符串列表,内容是一个模块里定义过的名字。返回的列表容纳了在一个模块里定义的所有模块,变量和函数。

    四 包

    包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块B
    目录中只有包含一个叫做init.py的文件才会被认作是一个包
    在导入包的时候,Python会从sys.path中的目录来寻找这个包中包含的子目录

    创建 init .py

  • 目录中只有包含了叫做init .py的文件,才能被程序认作是包,模块才能被导入成功。现在我们就在msg文件夹下创建一个 init .py文件,并且一定要在文件中写入 all
  • 目录中只有包含了叫做 init .py的文件,才能被程序认作是包,模块才能被导入成功。现在我们就在msg文件夹下创建一个 init .py文件,并且一定要在文件中写入 all
  • 可以在 init .py中编写其他内容,在导入时,这些编写的内容就会被执行。
  • 可以在 init .py中向sys.path添加当前被调用模块路径。
    #通过from一次性导入所有的模块
    #做一个包一定要创建一个__init__.py  这么文件中一定要设置 __all__ = ['允许导入的模块名']
    from msg import *
    send.sendMsg()
    recv.recvMsg()
    math.getInfo()

    重新加载

    import test
    # import test  #引入两边只输出一句hahaha
    import imp
    imp.reload(test)  #重新导入test模块
THE END
分享
二维码
< <上一篇
下一篇>>