导入时如何制作 python 运行 整个文件
How to make python run the whole file when imported
对于我正在制作游戏的上下文,游戏中有一个多人游戏功能,当我点击多人游戏按钮时它会导入一个文件client.py
,在第一个游戏结束后,我需要再次调用 client.py
,因为在全局范围内有一行 client.connect(ADDR)
。但是 python 拒绝再次导入文件,我需要客户端重新连接,因为它在第一场比赛后断开连接....有什么想法吗?
client.py
:
import socket
print("HIII") #This is was there for testing
HEADER = 6400
PORT = 5050
FORMAT = 'utf-8'
DISCONNECT_MESSAGE = "!DISCONNECT"
SERVER = "<Ipv4 address here>"
ADDR = (SERVER, PORT)
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(ADDR)
def send(msg, send=True):
if send:
message = msg.encode(FORMAT)
client.send(message)
msgFromServer = client.recv(HEADER).decode(FORMAT)
return msgFromServer
我觉得你可以试着把它变成一个函数,比如
import socket
def run_client():
print("HIII")
HEADER = 6400
...
和 from client import run_client
在主文件中。
这样,函数一次导入,想用就用。
对于我正在制作游戏的上下文,游戏中有一个多人游戏功能,当我点击多人游戏按钮时它会导入一个文件client.py
,在第一个游戏结束后,我需要再次调用 client.py
,因为在全局范围内有一行 client.connect(ADDR)
。但是 python 拒绝再次导入文件,我需要客户端重新连接,因为它在第一场比赛后断开连接....有什么想法吗?
client.py
:
import socket
print("HIII") #This is was there for testing
HEADER = 6400
PORT = 5050
FORMAT = 'utf-8'
DISCONNECT_MESSAGE = "!DISCONNECT"
SERVER = "<Ipv4 address here>"
ADDR = (SERVER, PORT)
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(ADDR)
def send(msg, send=True):
if send:
message = msg.encode(FORMAT)
client.send(message)
msgFromServer = client.recv(HEADER).decode(FORMAT)
return msgFromServer
我觉得你可以试着把它变成一个函数,比如
import socket
def run_client():
print("HIII")
HEADER = 6400
...
和 from client import run_client
在主文件中。
这样,函数一次导入,想用就用。