linux怎么查看本机内存大小
259
2022-09-14
Python - __name__==‘__main__‘是干啥的,以及python -m与python的区别
1. __name__=='__main__'是干啥的
先看例子,准备a.py和b.py放在同一个文件夹中
a.py
print("i am just print") if __name__ == '__main__': print("i am a.py main")
b.py
print("----------------")import aprint("----------------")if __name__ == '__main__': print("i am b.py main")
python a.py #执行a.py文件
i am just printi am a.py main
python b.py #执行b.py文件
----------------i am just print----------------i am b.py main
首先说明下的是import a其实就是把a.py文件执行一次,区别就是当a.py作为导入的文件时,则a.py文件里的这个判断就是假的__name__ == '__main__'。
2.再来说说python -m和python的区别
看看官方怎么说
python --help-m mod : run library module as a script (terminates option list)
先不解释这是啥意思,看例子,还是用之前的a.py文件
python a.py #执行a.py文件
i am just printi am a.py main
python -m a #以模块的方式执行a.py文件
i am just printi am a.py main
没啥区别,唯一区别是python -m后面的a.py要把后缀名.py去掉
继续来看 python
'''学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''>>> import sys>>> print(sys.path)['', '/usr/lib64/python26.zip', '/usr/lib64/python2.6', '/usr/lib64/python2.6/plat-linux2', '/usr/lib64/python2.6/lib-tk', '/usr/lib64/python2.6/lib-old', '/usr/lib64/python2.6/lib-dynload', '/usr/lib64/python2.6/site-packages', '/usr/lib64/python2.6/site-packages/gtk-2.0', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg-info']>>> exit()
上面列举出了python找模块的路径
我将a.py文件从当前目录移到任何一个sys.path的列表中,打个比方,我就放在/usr/lib64/python2.6这下面
mv a.py /usr/lib64/python2.6
然后执行python —m a
i am just printi am a.py main
执行python /usr/lib64/python2.6/a.py
i am just printi am a.py main
这两个又一样了,呵呵
总结
当我们知道一个模块的名字,但不知道它的路径时,使用python -m module_name 如果我们知道模块的完整路径(此处假设为"/path/to/module.py"),使用python /path/to/module.py 这两者等价,现在知道-m的作用了吧。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~