这是一个项目模板,所以我不能做太多更改...
我将忽略我认为不相关的部分:
#file server.py
import functions
import json
import socket
funcs = {}
class JSONRPCServer:
"""The JSON-RPC server."""
def __init__(self, host, port):
self.host = host
self.port = port
self.sock = None
def register(self, name, function):
"""Registers a function."""
funcs[name] = function
(...)
if __name__ == "__main__":
# Test the JSONRPCServer class
server = JSONRPCServer('0.0.0.0', 8000)
# Register functions
server.register('hello', functions.hello)
server.register('greet', functions.greet)
server.register('add', functions.add)
server.register('sub', functions.sub)
server.register('mul', functions.mul)
server.register('div', functions.div)
print(funcs)
# Start the server
server.start()
这里将在funcs字典中打印我的所有函数。
我还有一个需要函数内容的文件,但是为了测试,我有这个文件:
#file test.py
from server import funcs
print(funcs)
这将打印一个空字典。我该如何做,以便funcs在这两个文件中保持其值?
[当运行test.py文件时,]中的任何内容>
if __name__ == "__main__"
server.py的未运行,因为它不是主文件。因此,所有这些
server.register
调用都没有运行,因此您的funcs
字典为空。
也许将这段代码与所有寄存器调用放在一个不同的函数中,然后直接调用它?