我是python的新手,我想知道什么是更有效/更合适的方式来写这个?用户将输入一个“orbiting_body”类型,如果匹配则会输入正确的变量。
$('#btnConnect').click(function () {
$('#btnConnect').html('<span class="fa fa-spinner fa-spin"></span> Connecting');
$.ajax({
url: '/connect-console',
type: 'post',
data: {containerName: containerName},
success: function (url) {
$('#connectDiv').hide();
$('#terminalDiv').show();
term = new Terminal({
screenKeys: true,
useStyle: true,
cursorBlink: true
});
ws = new WebSocket(url,true);
ws.binaryType = 'arraybuffer';
term.on('data', function (data) {
ws.send(data);
});
term.open(document.getElementById("terminal"), true);
ws.onopen = function() {
console.log('ws connected');
};
ws.onerror = function() {
console.log('ws error');
};
ws.onclose = function() {
console.log('ws closed');
};
ws.onmessage = function(evt) {
var decoder = new TextDecoder('utf-8');
var data = decoder.decode(evt.data);
term.write(data);
};
}
});
});
答案 0 :(得分:5)
将其放入dict
db = {
"Ariel": (578.9, 90.099),
... and etc
}
primary_body_radius, gravitational_parameter = db.get(orbiting_body, (0.0, 0.0))
答案 1 :(得分:1)
尝试使用dictionary,heres是一个示例代码:
我在这里输入我的字典值
my_dict = {'Ariel':578.9, 'Callisto': 2410.3, 'Ceres':481.5}
您还可以按如下方式将值插入字典:
my_dict['Chairos'] = 6.2
您可以通过指定所需的密钥来访问它们:
primary_body_radius = my_dict['Ariel']
>> print(primary_body_radius)
>> 578.9
答案 2 :(得分:0)
不记得python语法很好,因为我多年没有使用它,但考虑逻辑:
如果您不想使用多态,则可以创建字典映射(键,值)。例如:
map[Europa]=(1560.8,3203.52)
map[default]=(0.0,0.0)
当用户插入orbiting_body时,您可以通过执行以下操作来分配变量:
(primary_body_radius,gravitational_paramter)=map[orbiting_body]
答案 3 :(得分:0)
这是另一种与@ tdelaney的
非常相似的方法from collections import defaultdict
orbiting_body = ...
primary_body_radius, gravitational_parameter = defaultdict(lambda: (0,0), {
'Ariel': (578.9, 90.099),
'Callisto': (2410.3, 7181.224),
# similarly for others
})[orbiting_body]