作用域:变量,函数

Public(公开):可以直接被引用,如:abc, PI, test() ,类似__xxx__这样的特殊变量 。联想C语言中, 当模块的某个东西希望外部能够引用,就在前面添加extern,或者不添加extern也可以

Private(秘密):不应该被直接引用,如:_xxx / __xxx 这样的变量。联想:C语言中, 当模块的某个东西不希望外部被引用时,就在前面添加static


当一个模块中存在部分不想被其他人引用的变量或函数时,如何操作?如下:

private.py是被调模块

public.py是公开模块


#private.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

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)


if __name__=='__main__':
    print(greeting())



#public.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from private import greeting   #导入private模块的greeting函数

print(greeting(['you', 'very', 'nice'])) 

modulec1.PNG