zoukankan      html  css  js  c++  java
  • Python学习札记(二十九) 模块2

    参考:使用模块

    NOTE

    1.内建sys模块:

    #!/usr/bin/env python3
    
    import sys
    
    'a test module'
    
    __author__ = 'wasdns'
    
    def main():
    	args = sys.argv
    	if len(args) == 1:
    		print('Hello')
    	elif len(args) == 2:
    		print('Hello, %s' % args[1])
    	else :
    		print('Your network has some problem.
    ')
    		print('Please change your network environment')
    
    if __name__ == '__main__':
    	main()
    
    sh-3.2# ./module1.py 
    Hello
    
    sh-3.2# ./module1.py wasdns
    Hello, wasdns
    
    sh-3.2# ./module1.py wasdns me
    Your network has some problem.
    
    Please change your network environment
    

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

    __author__变量把作者写进去.

    2.args参数:

    当执行:

    ./module1.py
    

    时,args只有一个参数,参数0:

    args[0] = 'module1.py'
    
    args = ['module1.py']
    

    执行:

    ./module1.py wasdns
    

    时,args有两个参数,参数0和1:

    args[0] = 'module1.py'
    
    args[1] = 'wasdns'
    
    args = ['module1.py', 'wasdns']
    

    3.作用域:模块中函数和变量名的作用域。public与private。

    在Python中,为避免模块中函数和变量名的冲突,通过_前缀来实现。

    类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,一般不用这样子的命名规范。

    类似_xxx和__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc,__abc等。

    #!/usr/bin/env python3
    
    import sys
    
    def _func1(name):
    	print('Hello, %s' % name)
    
    def _func2(name):
    	# do no thing
    	return
    
    def main():
    	args = sys.argv
    
    	if len(args) == 1:
    		print('Error: miss args')
    	elif len(args) == 2:
    		_func1(args[1])
    	else :
    		_func2(args[1])
    
    
    if __name__ == '__main__':
    	main()
    
    sh-3.2# ./module2.py 
    Error: miss args
    
    sh-3.2# ./module2.py wasdns
    Hello, wasdns
    
    sh-3.2# ./module2.py wasdns hi
    sh-3.2# 
    

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

    调用_func1和_func2函数无需关心其内部细节,这是一种非常有用的代码封装和抽象的方法。

    2017/2/22

  • 相关阅读:
    如何改变checkbox的样式
    EChart.js 简单入门
    Javascript异步编程的4种方法
    手写手机网站
    Handlebars的基本用法
    装饰器
    using Newtonsoft.Json;
    chrome插件学习笔记
    绩效考核如何快速评分
    wx jssdk
  • 原文地址:https://www.cnblogs.com/qq952693358/p/6431305.html
Copyright © 2011-2022 走看看