• 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

  • 相关阅读:
    一款单机游戏应该有的一些要素
    终于成功注册了Amazon.com的Affiliate
    创办公司的步骤不完全讲解(二)
    继续新环境没有asp.net mvc3项目模板的问题
    在自己的博客上打个广告,Kinect for Windows要的来
    数据仓库走向灭亡??
    Oracle & Endeca
    无题
    无题
    【译著】第7章 SportsStore:一个真实的应用程序 — 《精通ASP.NET MVC 3框架》
  • 原文地址:https://www.cnblogs.com/qq952693358/p/6431305.html
Copyright © 2020-2023  润新知