【发布时间】:2020-12-22 19:32:09
【问题描述】:
让我用一些代码更好地解释一下。
class Opcode (Enum):
WEEK= 1
EMAIL= 2
NAME= 3
DOB= 4
然后我有一个参数类,它处理服务器接收到的数据,并将其存储在适当的变量中:
class parameters:
week = None
email = None
name = None
dob = None
def __init__(self, conn):
#some initialization stuff, irrelevant
def process_input(self, opcode, data):
if opcode == Opcode.WEEK.value:
self.week = data
elif opcode == Opcode.EMAIL.value:
self.email= data
elif opcode == Opcode.NAME.value:
self.name= data
elif opcode == Opcode.DOB.value:
self.dob= data
.
.
.
else :
print("unknown opcode provided. disconnecting ... ")
#disconnect from client ...
只有 4 个操作码,这似乎太不好,但实际上我的程序有 12 个操作码,所以这个长 if...elif...elif...else 分支似乎是处理输入的一种不好的方式。我习惯使用 C++,在这种情况下我会使用 switch-case,但它们在 python 中似乎不是一个东西,所以也许有一个我不知道的更好的解决方案。有什么建议吗?
【问题讨论】:
-
使用字典去掉
if/elif。 -
networking 和 server 与它有什么关系是个谜。
标签: python