__name__和__main__


启用以后的语言特性

可能破坏现有代码语言方面的变动会不断引进。一开始,是以选用扩展功能的方式出现,默认是关闭的。要开启这类功能,可以使用以下形式的特定的import语句:

from __future__ import featurename
这个语句一般应该出现在模块文件的顶端,因为这是以每个模块为基础,开启特殊的代码编译。

混合用法模式:__name__和__main__

这是一个特殊的与模块相关的技巧,可把文件作为模块导入,也可以以独立程序的形式运行。每个模块都有个名为__name__的内置属性,Python会自动设置该属性。

  • 如果文件是以顶层程序文件执行,在启动时,__name__就会设置为字符串“__mian__”
  • 如果文件被导入,__name__就会改设成客户端所了解的模块名。
结果就是模块可以检测自己的__name__,来确定它是在执行还是在导入。
实际上,一个模块的__name__变量充当一个使用模式标志,允许它编写成一个可导入的库和一个顶层脚本。尽管简单,我们将会看到这一钩子几乎在可能遇到的每个Python程序文件中应用。
在文件末端的__name__测试中的自我测试程序代码,可能是Python中最常见并且是最简单的单元测试协议。

#!/usr/bin/env python
# coding=utf-8

print('I am:',__name__)

def minmax(test,*args):
    res=args[0]
    for arg in args[1:]:
        if test(arg,res):
            res=arg
    return res

def lessthan(x,y):return x<y
def grtrthan(x,y):return x>y

if __name__=='__main__':
    print(minmax(lessthan,4,2,1,5,6,3))
    print(minmax(grtrthan,4,2,1,5,6,3))


无论是否用于测试,结果都是让代码有两种不同的角色:作为工具的库模块,或者是作为可执行的程序。






















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值