模块手动执行和模块导入执行

本章内容:

    1、手动执行模块中的if __name__=="__main__"

    2、将文件整体导入到另一个模块中使用

 1、手动执行模块里的内容

新建一个文件叫process_Pool.py,然后手动执行

 1 #手动执行时,__name__ 等于__main__的,所以会执行测试代码
 2 
 3 import multiprocessing
 4 import time,threading
 5 
 6 def thread_run():
 7     print(threading.get_ident())
 8 
 9 def run(name):
10     time.sleep(2)
11     print('hello',name)
12     t = threading.Thread(target=thread_run,)
13     t.start()
14 
15 print(__name__)   #打印当前的文件名等于 __main__
16 
17 if __name__=="__main__":  #手动执行时,成立,所有执行
18     for i in range(10):
19         p = multiprocessing.Process(target=run,args=('boy%s'%i,))
20         p.start()
21         p.join()

2、将文件整体导入到另一个模块中使用

新建一个文件modle_poo.py,将process_Pool.py导入执行。由于__name__等于模块名process_Pool,所有if__name__=="__main__" 不成立

 1 import sys,os
 2 BASE_DIR = os.path.normpath(os.path.join(
 3     os.path.abspath(__file__),
 4     os.path.pardir
 5 ))
 6 sys.path.insert(0,BASE_DIR)
 7 # print(BASE_DIR)
 8 # print(sys.path)
 9 
10 
11 import process_Pool
12 
13 #执行结果是  process_Pool   #等于模块名,所有不执行if__name__=="__main__"
__author__ = "Alex Li"

import socket

HOST = 'localhost'  # The remote host
PORT = 9999  # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
while True:
    msg = bytes(input(">>:"), encoding="utf8")
    s.sendall(msg)
    data = s.recv(1024)

    #
    print('Received', data)
s.close()
原文地址:https://www.cnblogs.com/hcxy2007107708/p/9938554.html