Task12:模块(1day)

Task12:模块(1day)
1. 什么是模块容器
-> 数据的封装函数
-> 语句的封装类
-> 方法和属性的封装模块
-> 程序文件
2. 命名空间
命名空间因为对象的不同,也有所区别,可以分为如下几种:
内置命名空间(Built-in Namespaces): Python 运行起来,它们就存在了。内置函数的命名空间都属于内置命名空间,所以,我们可以在任何程序中直接运行它们,比如id(),不需要做什么操作,拿过来就直接使用了。
全局命名空间(Module:Global Namespaces):每个模块创建它自己所拥有的全局命名空间,不同模块的全局命名空间彼此独立,不同模块中相同名称的命名空间,也会因为模块的不同而不相互干扰。
本地命名空间(Function & Class:Local Namespaces):模块中有函数或者类,每个函数或者类所定义的命名空间就是本地命名空间。如果函数返回了结果或者抛出异常,则本地命名空间也结束了。
程序在查询上述三种命名空间的时候,就按照从里到外的顺序,即:Local Namespaces --> Global Namesspaces --> Built-in Namesspaces。
3.导入模数
对于很多编程语言来说,程序都必须要有一个入口,而 Python 则不同,它属于脚本语言,不像编译型语言那样先将程序编译成二进制再运行,而是动态的逐行解释运行。也就是从脚本第一行开始运行,没有统一的入口。假设我们有一个 const.py 文件,内容如下:

PI=3.14
def main():
    print("PI:",PI)
if __name__=="__main__":
    main()

现在,我们写一个用于计算圆面积的 area.py 文件,area.py 文件需要用到 const.py 文件中的PI 变量。从 const.py 中,我们把 PI 变量导入 area.py:

from const import PI
def round_area(radius):
    return PI*(radius**2)
def main():
    print("round area:",round_area(2))
main()    

这里我们如果我们不使用__name__=="main"的话,我们调用const的时候会自动运行const里面的函数实,际上我们不希望它被运行,因为 const.py 提供的 main 函数只是为了测试常量定义。
最后运行的结果是:

round area: 12.56

如果一个 .py 文件(模块)被直接运行时,其__name__值为__main__,即模块名为__main__。
所以,if name == 'main’的意思是:当 .py 文件被直接运行时,if name == 'main’之下的代码块将被运行;当 .py 文件以模块形式被导入时,if name == 'main’之下的代码块不被运行。
4.搜索路径

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值