学习笔记(8)
第九章 模块与包
模块是 一个保存了Python代码的文件,其中可以包含变量、函教、或类的定义,也可以包含其他各种python语句,使用模块有以下3方面的优势。
1.模块提高了代码的可维护性。在程序开发过程中,随着程序功能的增多,在一个文件中的代码会越来越长,从而造成程序不易维护,此时可以把相关功能的代码分配到一个模块里,从而使代码更易懂,更易维护。
2.模块提高了代确的可重用性。在应用程序开发中,经常需要处理时间,此时不必在每个程序中写入时间的处理函数只需导人time模块即可3. 模块避免了函数名和变量名冲突。由于相同名字的函教和变量可以分别存在于不同模块中, 在编写模块时,不必考虑名字会与其他模快冲突(此处不考虑导包情况)
在python中,模块可以分为3类,具体如下;
内置标准模块(标准库)——python自带的模块,如sys、os等。
自定义模块——用户为了实现某个功能自己编写的模块。
第三方模块——其他人已经编写好的模块。
一个python程序可由若干模块中可以使用其他模块的变量、函数和类等,如图所示:
模块需要先导入,然后才能使用其中的变量或函数 ,在python中使用关键字import导入某个模块,其语法格式如下:
from 模块名 import 导入对象名
from 模块名 import 导入对象名 as 别名
from 模块名 import *
注意使用from导入的对象可以直接使用,不需要使用模块名作为限定符,例:
from math import sqrt as st
print(st(9))
import与from导入模块各有特点,使用import导入模块时比较简单,使用from导入模块时需列出想要导入的对象名,但无论哪种导入方式,模块只能一次导入,另外,注意模块整体导入的开销是比较大的。
sys模块
sys模块是python标准库中最常见的模块之一。通过它可以获取命令行参数,从而实现从程序外部向程序内部传递参数的功能,也可以获取程序路径和当前系统平台等信息。
示例:
import sys
print(sys.argv)
print("参数个数:"+str(len(sys.argv)))
for i in range(len(sys.argv)):
print(""+str(i+1)+":"+sys.argv[i])
platform模块
platform模块提供了很多方法用于获取有关开发平台的信息,例:
import platform
print(platform.platform())
print(platform.architecture())
print(platform.python_build())
print(platform.python_compiler())
random模块
random模块用于生成随机数,其中常用的函数如表所示:
接下来演示random模块中主要函数的用法:
import random
print (ranndom.random())
print (ranndom.uniform(3,5))
print (ranndom.uniform(5,3))
print (ranndom.randint(0,5))
print (ranndom.randrange(0,6,2))
list=[1,2,3,4,5,6]
random.shuffle(list)
print(list)
print(random.sample(list,4))
time模块
time模块用于获取并处理时间,python中有两种时间表示方法,接下来分别介绍每种表示方式:
1.时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。在time模块中time()函数可以获取当前时间的时间戳,例:
import time
print (time.time())
包的概念
python的程序由包、模块和函数组成。包是由一系列模块组成的集合,模块是处理某一类问题的函数和类的集合,它们之间的关系如图所示:
python提供了许多有用的工具包,如字符串处理、web应用,图像处理等,包是一个至少包含_int_.py文件夹,init.py文件一般用来进行包的某些初始化工作或者设置_all_值,其内容可以为空。
第十章 面向对象 上
python使用class关键字来定义类,其语法格式如下:
class 类名:
类体
类名首字母一般需要大写:
class Student:
def say (self,name):
self.name=name
print('我是',self.name)
对象的创建
在python中,有两种对象:类对象与实例对象。类对象只有一个,而实例对象可以有多个。
类对象