python 模块的作用域

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 模块的作用域相关的知识,希望对你有一定的参考价值。

作用域:变量,函数

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'])) 


以上是关于python 模块的作用域的主要内容,如果未能解决你的问题,请参考以下文章

Python 函数的作用域

python 归纳 _模块变量作用域

Python基础-变量作用域

python 模块的作用域

python函数的作用域

python变量作用域和模块