将如下源代码保存在 hello.py
- #!/usr/bin/env python3 #告诉 Unix/Linux/Mac 此文件为 Python 可执行文件
- # -*- coding: utf-8 -*- # 本文件使用标准 UTF-8 编码格式
- 'a test module' # 文档注释, 任务模块代码的第一个字符串都被视为当前模块的文档注释
- __author__ = 'Michael Liao' # __author__ 变量存储作者
- import sys #sys 变量可以访问 sys 模块的全部功能
- def test():
- args = sys.argv #sys 的 argv 参数, 用 list 存储命令行的所有参数, argv 至少有一个元素, 即 当前 py 文件的文件名 (argv[0])
- if len(args)==1:
- print('Hello, world!')
- elif len(args)==2:
- print('Hello, %s!' % args[1])
- else:
- print('Too many arguments!')
- # 当前文件保存为 hello.py 文件, 当在命令行运行 hello 模块文件是, Python 解释器将一个特殊变量__name__置为__main__, 而如果在其他地方导入该 hello 模块,
- #if 判断将失效, 因此, 中 if 测试可以让一个模块通过命令行运行时执行一些额外的代码, 这是最常见的 运行测试.
- if __name__=='__main__':
- test()
命令行运行:
- [@wooluwakerdeMBP:test]$ python hello.py Michael
- Hello, Michael!
Python 交互式环境, 导入 hello 模块:
import 一个模块时候, 该模块不会执行; 只有手动调用其方法才会触发执行;
- [@wooluwakerdeMBP:test]$ python ### 进入 Python 交互式环境
- Python 3.7.5 (default, Oct 25 2019, 10:52:18)
- [Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
- Type "help", "copyright", "credits" or "license" for more information.
- >>> import hello
- >>> hello.test()
- Hello, world!
作用域
正常的函数和变量名是公开的 (public), 可以被直接引用, 比如: abc,x123,PI 等;
类似_xxx 和__xxx 这样的函数或变量就是非公开的 (private), 不应该被直接引用, 比如_abc,__abc 等;
只有需要被外部调用的函数才定义成 public, 不需要被外部调用的函数定义成 private, 可以在 public 方法中封装 private 方法
来源: http://www.bubuko.com/infodetail-3399369.html