特定的函数返回变量创建一个类从列表中输入特定的名称在python?



我想找到一个函数,可以返回Python中特定列表的特定对象。例如,如果我有一个这样的结构:

obj_list = [ "A" , "B" , "C" ]
class ex:
def __init__(self, var1, var2, var3):
self.var1 = var1
self.var2 = var2
self.var3 = var3
def find(key):
if key == "A"
return ex(1, 2, 3)
if key == "B"
return ex(2,3,4)
if key == "C"
return ex(4,5,6)

在python中存在一个特定的函数,允许我在不使用不确定的if集合的情况下执行此操作?因为在我的情况下,假设我有一个更长的元素lit_obj列表,我希望避免编写许多if,并使代码更干净,将所有内容都包含在一个函数中。例如,在打字稿中,我可以使用记录函数<K,>要做这个操作,python中有特定的吗?谢谢你的帮助

在TS中的例子:

type MainnetPoolKey = "A" | "B" | "C" ;
interface Pool {
var1: number;
var2: number;
var3: number;
}
const MainnetPools: Record<MainnetPoolKey, Pool> = {
A: {
var1: 86498781,
var2: 0
var3: 686505742,
},
B: {
var1: 686500029,
var2: 31566704,
var3: 86508050,
},
C: {
var1: 86500844,
var2: 312769,
var3: 509463,
}
}

我不知道typescript的Record函数是怎么工作的,但是我可以给你你想要的。

解决方案只需将所有内容保存到dictionary中,然后从函数中加载即可。

presets = {
"A": {
"var1": 1,
"var2": 2,
"var3": 3
},
"B": {
"var1": 2,
"var2": 3,
"var3": 4
},
"C": {
"var1": 4,
"var2": 5,
"var3": 6
}
}
class ex:
def __init__(self, var1, var2, var3):
self.var1 = var1
self.var2 = var2
self.var3 = var3
def find(key):
return ex(**presets[key])
a = find("A")
print(a.var1, a.var2, a.var3) # 1 2 3

**找到函数意味着打开字典参数。**(双星/星号)和*(星号/星号)对参数有什么作用?会有所帮助。

最新更新