首页 技术 正文
技术 2022年11月14日
0 收藏 748 点赞 4,140 浏览 1575 个字

第3课  模块

1、模块(module)

Python中一个.py文件就是一个模块,可以调用其它文件中的程序。

例:first.py

def laugh():
print '哈哈哈哈哈'

second.py

 import first
for i in range(5):
first.laugh()

2、搜索路径

Python会按照如下顺序搜索它需要的模块

1)程序所在文件夹;2)Pythonpath中包括的路径;3)标准库安装路径

3、模块包

将功能类似的模块放在一个文件夹中,如this_dir,构成1个模块包,可以通过

import this_dir.module  引入想要的模块

4、Python中还有其它引入方式:

import a as b  #引入模块a,并重命名为b

from a import function  #引入模块a中的对象function,使用对象时不用再说明模块,直接用function即可

from a import *  #引入模块a中所有的对象,使用对象时不用再说明模块,直接使用对象即可,不用再a.对象

这样方便以后程序的书写

模块包之间的模块相互引用,与上述相同

from packageA import A或者

import packageA.A

第4课 函数的参数

1、关键字传递:根据参数的名字传递参数,关键字传递不遵守位置对应关系,如:

def test(a,b,c):
return a+b+c
print test(a=1,b=2,c=3)

关键字传递和值传递可以混用,但值传递参数要放在关键字传递的前面,且混合时是按照顺序的,如下面的1指定传给a:

print test(1,b=1,c=2)

这样写会报错

def test(a,b,c):
print a,b,c
return a+b+c
print test(1,a=2,b=3)

2、参数的默认值

定义函数时,使用形如a=19的方式,可以给参数赋予默认值(default)。如果该参数没传值,将使用该默认值。

def f(a,b,c=10):
return a+b+cprint(f(3,2))
print(f(3,2,1))
输出:
15
6

在第一次调用函数f时, c没有被赋值,c将使用默认值10.

第二次调用函数的时候,c被赋值为1,不再使用默认值。

有默认值的函数参数只能放在参数的最后:如 def(x,y=1)有效,def(y=1,x)无效

3、包裹(package)值传递

创建函数时,有时候不确定有多少个参数,此时包裹值传递会有很大用处

例1:包裹位置传递
1 def func(*name):
print name
func(1)
func(2,3,4,5)

在func的参数列表中,所有的参数被name收集,根据位置整合为元组,为了提醒Python,name是包裹值传递的元组名,要在前面加*

例2:包裹关键字传递
def func1(**dict):
print type(dict)
print dict
func1(a=1,b=2)
func1(a=1,b=2,c=3)
输出:
<type 'dict'>
{'a': 1, 'b': 2}
<type 'dict'>
{'a': 1, 'c': 3, 'b': 2}

在func1中,所有的参数被dict收集,整合为一个字典,为了提醒Python,dict是包裹值传递的字典名,要在前面加**

4、解包裹

def func(a,b,c):
print a,b,cargs = (1,3,4)
dict = {'a':1,'b':2,'c':3}
func(*args)
func(**dict)输出:
1 3 4
1 2 3

传递元组时,让元组的每个参数对应一个位置参数,调用func时,参数前面加* ,是为了提醒Python,把args分割为三个数据,分别传给a,b,c

传递字典,把字典的值作为关键字传给函数参数

5、定义或者调用参数时,参数的几种传递方式可以混合,基本原则是,先位置(值传递),再关键字,再包裹位置,再包裹关键字

上一篇: Swagger实践和总结
下一篇: H5 项目问题总结
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,027
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,518
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,365
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,146
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,780
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,857