#!/usr/bin/env python3 #第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行 # -*- coding: utf-8 -*- #表示.py文件本身使用标准UTF-8编码 ' a test module ' #是一个字符串,表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释 __author__ = 'Michael Liao' #使用__author__变量把作者写进去,这样当你公开源代码后别人就可以瞻仰你的大名 import sys #导入该sys模块 #变量sys指向该模块,利用sys这个变量,就可以访问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() ----------------------------------------------------------------------- sys模块有一个argv变量,用list存储了命令行的所有参数。argv至少有一个元素, 因为第一个参数永远是该.py文件的名称,例如: 运行python3 hello.py获得的sys.argv就是['hello.py']; 运行python3 hello.py Michael获得的sys.argv就是['hello.py', 'Michael]。 $ python3 hello.py Hello, world! $ python hello.py Michael Hello, Michael! 启动Python交互环境,再导入hello模块: $ python3 Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 23 2015, 02:52:03) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import hello >>>hello.test() Hello, world! 当我们在命令行运行hello模块文件时,Python解释器把一个特殊变量__name__置为__main__,而如果在其他地方导入该hello模块时,if判断将失败,因此, 这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试。 分享知识,分享快乐!希望中国站在编程之巅!
360图书馆馆号:rsgz002.360doc.com |
|