廖雪峰[010]

模块

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

' a test module '

__author__ = 'Michael Liao'

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!')
        
if __name__=='__main__':
    test()

第1行和第2行是标准注释,第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行,第2行注释表示.py文件本身使用标准UTF-8编码;

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

第6行使用__author__变量把作者写进去,这样当你公开源代码后别人就可以瞻仰你的大名;

以上就是Python模块的标准文件模板

当我们在命令行运行hello模块文件时,Python解释器把一个特殊变量__name__置为__main__,而如果在其他地方导入该hello模块时,if判断将失败,因此,这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试。

运行命令:

>>> $ python3 hello.py
Hello, world!
>>> $ python hello.py Michael
Hello, Michael!
>>> import hello
>>> hello.test()
Hello, world!

作用域:

  1. 变量名的设置:

    在模块内部使用 _x __x前缀
    公开使用 abc sum
    特殊变量 __xx__

  2. 使用说明:

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

    举个例子:你只需要将weather_act命名为公用,内部的可以设为_func

def _func1(weather):
	return '%s day, Hang out!' % weather

def _func2(weather):
	return '%s day, Stay home!' % weather

def weather_act(weather):
	if weather == 'Good':
		return _func1(weather)
	if weather == 'Bad':
		return _func2(weather)

# 测试
>>> weather_act('Good')
'Good day, Hang out!'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值