使用模块
import sys
def test():
args = sys.argv #argv变量,用list存储了命令行的所有参数
if len(args) == 1:
print('hello world')
elif len(args) == 2:
print('hello %s' %args[1])
else:
print('too many arugement')
#当我们在命令运行hello文件时,python解释器把一个特殊变量__name__置为__main__
#而如果在其他地方导入该hello模块时,if判断将失败,因此这种if测试可以让一个模块
#通过命令运行时执行一些额外的代码,最常见的就是运行测试
if __name__ =='__main__':
test()
作用域
类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,我们自己的变量一般不用这种变量名。
def _private_1(name):
return 'hello %s' % name
def _private_2(name):
return 'he %s' % name
def greeting(name):
if len(name) > 3:
return _private_1(name)
else:
return _private_2(name)
我们在模块里公开greeting()函数,而把内部逻辑用private函数隐藏起来了,这样,调用greeting()函数不用关心内部的private函数细节,这也是一种非常有用的代码封装和抽象的方法,即外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义为public