码迷,mamicode.com
首页 > 编程语言 > 详细

python 模块的作用域

时间:2018-07-18 17:02:18      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:lse   函数   语言   引用   play   utf-8   coding   调用   private   

作用域:变量,函数

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 模块的作用域

标签:lse   函数   语言   引用   play   utf-8   coding   调用   private   

原文地址:http://blog.51cto.com/13502993/2146812

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!