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模块
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值