python中__name__的使用

这几天开始学习Python,不太理解__name__的用途

其中if __name__ == '__main__':这句估计很多和我一样的初学者都是不了解为啥加上这一句。
这里作一下解释:

1:__name__是一个变量。前后加了下划线是因为是因为这是系统定义的名字。普通变量不要使用此方式命名变量。

可以查看 Python 全部内置变量和内置函数

>>> dir(__builtins__)


2:Python有很多模块,而这些模块是可以独立运行的!这点不像C++和C的头文件。


3:import的时候是要执行所import的模块的。


4:__name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__main__,通过if判断这样就可以执行“__mian__:”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“__mian__:”后面的内容。

通过上面方式,python就可以分清楚哪些是主函数,进入主函数执行;并且可以调用其他模块的各个函数等等。


1. 如果模块是被导入,__name__的值为模块名字
2. 如果模块是被直接执行,__name__的值为’__main__’

举栗子:

# test.py
print('Hello World!')


def aaa():
    print('this message is from aaa  function')
    print('now __name__ is %s' % __name__)

def main():
    print('this message is from main function')


if __name__ == '__main__':
    aaa()
    print('now __name__ is %s' % __name__)

#main.py

from test import aaa

def print_hi(name):
    # Use a breakpoint in the code line below to debug your script.
    print(f'Hi, {name}')  # Press Ctrl+F8 to toggle the breakpoint.


# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    print_hi('PyCharm')
    aaa()

执行mian.py输出

Hello World!
Hi, PyCharm
this message is from aaa  function
now __name__ is test

Process finished with exit code 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值