在打开 SQLConnection 之前处理不同的 ConnectionStates
import sys
from typing import (
Any,
Dict,
List
)
from typing import NamedTuple
State1 = NamedTuple('State1', ('enabled', bool), ('value', Any))
State2 = NamedTuple('State2', ('enabled', bool), ('value', Any))
CONNECTION_STATES = {
'State1': State1,
'State2': State2 # 在此添加其他状态
}
class SqlConnection:
# 打开 SQLConnection 函数前处理不同类型的 State
@staticmethod
def open_connection(
*args: Any,
enabled_states: List[bool] = None
) -> None:
# 从参数中提取 enabled_states 列表
enabled_states = set(enabled_states if enabled_states is not None else [True, False])
# 检查是否满足打开条件
if not all([enabled for _, enabled in CONNECTION_STATES.items() if enabled]):
print("无法打开连接,未达到所有状态启用条件。")
return
if 'State1' in enabled_states:
# 检查 State1 是否启用
state1 = CONNECTION_STATES['State1'](enabled=True, value=500)
print("State1: 当前值为 %s" % state1.value)
elif 'State2' in enabled_states:
# 检查 State2 是否启用
state2 = CONNECTION_STATES['State2'](enabled=True, value=800)
print("State2: 当前值为 %s" % state2.value)
open_connection()
领取专属 10元无门槛券
手把手带您无忧上云