python中的模块

模块

  • 一个.py文件就称之为一个模块(Module)
# 第1行和第2行是标准注释,第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行,第2行注释表示.py文件本身使用标准UTF-8编码;
#!/usr/bin/env python3  
# -*- coding: utf-8 -*-

# 表示模块的文档注释,任何模块代码的第一个字符串都被视为模块的文档注释
"""a test module"""

# 使用__author__变量把作者写进去,这样当你公开源代码后别人就可以瞻仰你的大名
__author__ = 'Dear.Michael Liao'

import 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()
导入模块
import sys  # 导入模块sys,就有变量sys指向该模块,利用sys这个变量,就可以访问sys模块的所有功能
from 模块 import 函数
  • sys模块有一个argv变量,用list存储了命令行的所有参数。argv至少有一个元素,因为第一个参数永远是该.py文件的名称:python3 hello.py得到sys.argv ==> ['hello.py'];python3 hello.py icessun得到sys.argv ==> ['hello.py','icessun']

  • 在命令行运行hello模块文件时,Python解释器把一个特殊变量__name__置为__main__,而如果在其他地方导入该hello模块时,if判断将失败,因此,这种if测试可以让一个模块通过命令行运行时执行一些额外的代码,最常见的就是运行测试

    
    # 该文件作为模块导入的时候,if条件失效  hello.py 模块
    
    if __name__ == '__main__': 
      test()
    
    import hello   
    >>> hello.test()
    Hello, world!
作用域
  • 因为Python并没有一种方法可以完全限制访问private函数或变量,但是,从编程习惯上不应该引用private函数或变量。虽然是私有变量,但不是说不一定不能访问,只是说不应该被直接访问。

  • _arg 或者 __arg,变量前缀实现变量私有化;类似_xxx__xxx这样的函数或变量就是非公开的(private),不应该被直接引用

  • 正常的函数和变量名是公开的(public),可以被直接引用

    def _private_1(name):
      return 'Hello, %s' % name
    
    def _private_2(name):
      return 'Hi, %s' % name
    
    def greeting(name):
      if len(name) > 3:
          return _private_1(name)
      else:
          return _private_2(name)
    • 在模块里公开greeting()函数,而把内部逻辑用private函数隐藏起来了,这样,调用greeting()函数不用关心内部的private函数细节,这也是一种非常有用的代码封装和抽象的方法
    • 外部不需要引用的函数全部定义成private,只有外部需要引用的函数才定义为public。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值