首页 > 试题广场 > 已知print_func.py的代码如下: print('
[单选题]

已知print_func.py的代码如下:

print('Hello
World!')
print('__name__
value: ', __name__)
def main():
    print('This message is from main function')
if __name__ ==
'__main__':
    main()
print_module.py的代码如下:
import print_func
print("Done!")
运行print_module.py程序,结果是:
  • Hello World!

    __name__ value: print_func

    Done!
  • Hello World!

    __name__ value: print_module

    Done!
  • Hello World!

    __name__ value: __main__

    Done!
  • Hello World!
    __name__ value:
    Done!
答案错误,应该选A
如果是直接执行print_func文件,则__name__的值为__main__;
如果是以导入模块的形式执行print_func文件,则__name__的值为该文件名print_func。

__name__的目的就是如果是以导入模块的形式执行文件,不会执行if __name__ == '__main__'下面的语句。
发表于 2019-07-12 13:18:59 回复(0)

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

1:__name__是一个变量。前后加了爽下划线是因为是因为这是系统定义的名字。普通变量不要使用此方式命名变量。
2:Python有很多模块,而这些模块是可以独立运行的!这点不像C++和C的头文件。
3:import的时候是要执行所import的模块的。
4:__name__就是标识模块的名字的一个系统变量。这里分两种情况:假如当前模块是主模块(也就是调用其他模块的模块),那么此模块名字就是__main__,通过if判断这样就可以执行“__mian__:”后面的主函数内容;假如此模块是被import的,则此模块名字为文件名字(不加后面的.py),通过if判断这样就会跳过“__mian__:”后面的内容。

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

 


 

1. 如果模块是被导入,__name__的值为模块名字

2. 如果模块是被直接执行,__name__的值为’__main__’
发表于 2019-07-24 14:24:45 回复(0)
1.先看下面类名为print_module, 2.然后进入了类print_func, 3.输出了Hello Word!, 4.接着输出__name__value: 类名(即print_func), 5.然后到if函数,由于两个值不相等,所以不输出前面定义的main()中的内容, 6.最后回到print(“Done!”)
发表于 2019-07-12 08:42:49 回复(0)
__name__是内置属性,每一个python的对象,方法函数,类都会默认有这个字段,返回的是函数名
发表于 2019-07-09 14:15:55 回复(0)
这题答案错了,应该选A
编辑于 2019-07-04 21:20:27 回复(2)
确实应该选A的:


发表于 2019-08-02 21:20:51 回复(0)
答案应该选a
发表于 2019-07-31 18:14:51 回复(0)
python主函数
发表于 2019-07-20 08:53:10 回复(0)
答案错了,应该是A
发表于 2019-07-16 10:51:42 回复(0)
此题答案为A;
Hello World!
__name__ value: print_func
Done!


发表于 2019-07-15 16:49:38 回复(0)
答案错了,小心,应该是A选项
发表于 2019-07-09 08:22:39 回复(0)