深入研究有趣的python语言,因此在该语言作为一个结构中没有转换。因此,阅读《学习python》第一版是使用词典的首选。所以我试过类似的事情
cases = { 2 : readt3(e,t,off, partElems, partsNodes), # to read the triangular elements
3 : readq4(e,t,off, partElems, partsNodes), # to read the quadrangular elements
5 : readh8(e,t,off, partElems, partsNodes), # to read the hexa elements
}
# define functions
def readt3( e, t, off, partElems, partsNodes, partPnt ):
partsElems[partPnt].append(e)
nods = t[offset: offset+3];
for n in nods:
partsNodes[partPnt].append(n)
return
得到了错误“readt3 is undefined”,我想我得到这个是因为它在case之前没有定义,然后把函数定义移到cases上面,但是这个问题还是一样的,但是这次“e is not defined”我不能理解,所以e是一个函数参数,为什么我在e上得到一个定义相关的错误?在
在这种情况下模拟交换机情况时,函数定义应该放在哪里?在
事实上,使用措辞来调度呼叫是一件有时可以做的事情,只要有意义,当你知道你在做什么的时候。在
在其他语言中用来代替“
switch...case
”的Python语法构造是“if..elif..else
”。在我不知道为什么人们根本不喜欢它。就像一个人会“失去表现”或其他什么。但是..switch case,when one think,是if--else链的一个非常狭窄的特例:它只允许比较相等,并且只比较整数(至少在C语言中,我不知道所有克隆C语法的语言),而在if elif链中,可以使用任何表达式。在
很容易看出Switch case语句是在C中引入的,因为它允许编译器为这种特殊情况自动进行优化(使用跳转表,而不是一系列比较)。但是…这只对编译语言有意义,而且,只有当编译器不能单独处理这些优化时才有意义,即使这样,只有在10次或20次比较的速度差大于使用跳转表时才有意义。在
如您所见,在现代高级语言中使用“switch case”是相当多余的,这是因为可以将if elif else语句连接起来。在
这本词典不是用来作为一个结构使用的。它不是用来存储结构的,而是用来存储真实数据的。在你的情况下,我认为最好是定义一个对象。考虑在这个场景中使用OO。在
当你做这样的事情时:
实际上,您正在使用参数
^{pr2}$e,t,off, partElems, partsNodes
计算(调用)函数readt3
。我想您想做的是类似这样的事情(模拟switch case语句):现在你可以用这样一个
case
参数来调用你的案例:相关问题 更多 >
编程相关推荐