python三十三节_python学习笔记-tip33(模块)

模块的格式

如果我们想定义模块,可以按照以下格式写

#!/usr/bin/env python3

# -*- coding:utf-8 -*-

' a test module'

__author__='guaju'

解释以下:

第一行:是注释,但是有用,这个注释可以让当前的.py文件直接在Unix/Linux/Mac上运行

第二行:也是注释,表示当前.py文件使用标准utf-8编码

第三行:空行

第四行:是一个字符串,表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释

第五行:空行

第六行:作者

这是python的标准文件模板,照做就可以了。

使用模块

前期我们也使用过,直接用import 模块名就好了

python内置了很多模块:sys functools Iterator等

比如我们使用sys模块

import sys

我们先看一个简单的示例,使用了sys模块的一些变量

#! /usr/bin/env python3

# -*- coding:utf-8 -*-

‘first use module’

__author__='guaju'

import sys

def test():

args=sys.argv

if len(args)==1:

print('hello world')

elif len(args)==2:

print('hello %s' %args[1])

else:

print('too many arguments')

我们来看下使用示例

358a7b870558

将写好的代码保存到 “modlue.py”文件内

然后执行命令行中的方法,我们写的“module.py”模块就能够检测 我们输入命令行中所有的参数了

示例中一次输入了 一个、两个、三个参数

故输出了三种结果

需要我们特别注意的是,我们最后边的代码

if __name__=='__main__':

test()

这两行代码的意思是“当我们在自己执行自己的模块时,则会调用test()方法,如果是其他地方引入了我们的‘module模块,则不会被调用’”

因为我们在执行“module.py”模块时,python解释器会把我们模块中的特殊的变量

__name__

置为

__main__

而在别的地方引入‘module.py’模块则不会

我们来看从别的地方引入‘module.py’模块会不会打印

358a7b870558

当然了,如果我们想调用这个方法,直接用就好了

358a7b870558

作用域

即函数及变量的可使用范围

在python中,通过""即单下划线或者“_”双下划线来表示不应该外部引用,即类似于java中的private

为什么有作用域?

因为不想或者不应该让外界知道某个函数的内部逻辑或者变量

我们来看一个例子就明白了

def _private1(name):

return 'hello %s' %name

def _private2(name):

return ‘hi %s’ %name

def welcome(name):

if len(name)>3:

private1(name)

else:

private2(name)

上边的例子,我们通过定义_private1,_private2来定义了私有的方法,仅仅对外暴露公共的welcome方法,调用welcome的时候不需要考虑内部的细节,这是一种非常有用的代码封装和抽象的方法。

原则:外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义成public。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值