当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == '__main__':,现在就来介 绍一下它的作用.
模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用模块。如果 import 一个模块,那么模块__name__ 的值通常为模块文件名,不带路径或者文件扩展名。但是您也可以像一个标准的程序样直接运行模块,在这 种情况下, __name__ 的值将是一个特别缺省"__main__"。
///////////////////////////////////////////////////////////////////////////////////////////////////
在cmd 中直接运行.py文件,则__name__的值是'__main__';
而在import 一个.py文件后,__name__的值就不是'__main__'了;
从而用if __name__ == '__main__'来判断是否是在直接运行该.py文件
如:
#Test.py
class Test:
def __init(self):pass
def f(self):print 'Hello, World!'
if __name__ == '__main__':
Test().f()
#End
你在cmd中输入:
C:>python Test.py
Hello, World!
说明:"__name__ == '__main__'"是成立的
你再在cmd中输入:
C:>python
>>>import Test
>>>Test.__name__ #Test模块的__name__
'Test'
>>>__name__ #当前程序的__name__
'__main__'
无论怎样,Test.py中的"__name__ == '__main__'"都不会成立的!
所以,下一行代码永远不会运行到!
//////////////////////////////////////////////////////////////////////////////////
相关推荐
主要介绍了Python中if __name__ == '__main__'作用解析,这断代码在Python中非常常见,它有作用?本文就解析了它的作用,需要的朋友可以参考下
当你打开一个.py文件时,经常会在代码的最下面看到if __name__ == ‘__main__’:,现在就来介 绍一下它的作用. 模块是对象,并且所有的模块都有一个内置属性 __name__。一个模块的 __name__ 的值取决于您如何应用...
python的几个魔法函数 __repr__ Python中这个__repr__函数,对应...if __name__ == '__main__': a=A() print(a) 输出结果 <__main__.A object at 0x0000018DF8E7EAC8> 不是很友好,返回了一个对象的内存地址
if __name__ == '__main__': ofd_file = '22.OFD' # 文件路径 print('ofd文件:', ofd_file) ofd = Cp_ofd_invoice(ofd_file) # 实例化对象 print('-' * 60) print('属性内容:', ofd.get_property) # 发票属性 ...
进程和线程一样,也存在着不同进程争抢共享内存的问题。 具体实现: import multiprocessing as mp import time def job(num1, num2): ...if __name__ == '__main__': init() 解析: 定义公共变量“num”
if __name__=='__main__': print Program name, sys.argv[0] for i in range(1, len(sys.argv)): print arg%d%i,sys.argv[i] 测试: python test.py 1 2 3 4 5 输出如下: 您可能感兴趣的文章:Python命令行...
if __name__ == '__main__': lock = threading.Lock() #定义Lock( )对象 A = 0 t1= threading.Thread(target=job1) t2= threading.Thread(target=job2) t1.start() t2.start() t1.join() t2.join() 线程同步 结果...
if __name__=='__main__': p1 = mp.Process(target=job) p1.start() p1.join() 解析: 可以发现创建进程和创建线程的方式基本一致,导入“multiprocessing ”模块,调用“Process()"方法创建进程对象,自定义进程...
本文实例讲述了python解析网页源代码中的115网盘链接的方法。分享给大家供大家参考。具体方法分析如下: 其中的1.txt,是网页http://bbs.pediy.com/showthread.php?t=144788另存为1.txt 具体代码如下: import re ...
最后,使用 if __name__ == '__main__': 来判断该文件是否作为独立脚本运行,以启动爬虫。 请注意,爬取网页数据时需要遵守网站的相关规定和法律法规,尊重网站的爬取政策,并确保你的爬虫行为合法、合规、可持续和...
1.使用 getattr(object, name, default=None) ...if __name__ == '__main__': test = Test() name = getattr(test, 'name') # 获取属性 print(name) age = getattr(test, 'age') # 获取属性 print(age) none = ge
/usr/bin/env python class Foo(object): x=1 if __name__==’__main__’: foo = Foo() print ‘foo.x=’,foo.x print ‘Foo.x=’,Foo.x foo.x = 2 print ‘foo.x=’,foo.x print ‘Foo.x=’,Foo.x 您可能感兴趣的...
本文研究的主要是Python程序运行原理,具体介绍如下。 编译型语言(C语言为例) 动态型语言 一个程序是如何运行起来的?比如下面的代码 #othermodule.py ...if __name__ == '__main__': func() res = othe
1.python 中创建进程的两种方式: from multiprocessing import Process import time def test_(): print '-----test-----' if __name__ == '__main__': p = Process(target=test_) p.start() while True: ...
一.bytes和string区别 1.python bytes 也称字节序列,并非字符。取值范围 0 <= bytes <= 255,输出的时候最前面会有字符b修饰;...if __name__ == __main__: # 字节对象b b = bshuopython.com
if __name__=='__main__': now = datetime.now() json.dumps({'now':now}) 运行会出现下面的错误信息: Traceback (most recent call last): File "C:\Users\xx\Desktop\t.py", line 8, in json.dumps
从Python 3函数注释中以最少的样板生成参数解析器。 #!/usr/bin/env python3.8 from clii import App , Arg from pathlib import Path from subprocess import run cli = App () @ cli . cmd def add ( a : int , b...
if __name__ == '__main__': app.run(host='0.0.0.0', port=5000, debug=True) ``` 2、 正式环境 以下用uwsgi为例,启动脚本start.sh,内容如下: ```bash #!/bin/bash basedir=$(cd $(dirname $0); pwd) uwsgi --...
这篇文章主要介绍了Python 切分数组实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的...if '__main__' == __name__: list1 = ['s1', 's2', 's3', 's4', 's5', 's6', 's7'] list2 = list_s