http://bbs.chinaunix.net/thread-1763180-1-1.html
DO WHILE实现
while if 應該滿足到你需要吧. |
switch实现
def add_category(request,id):
f = CategoryForm(initial={'parent':id})
f.base_fields['parent'].widget = HiddenInput()
f.base_fields['language'].widget = RadioSelect(choices=settings.LANGUAGES)
categoryAction = {
"a": add_category,
"e": edit_category,
"l": list_category,
"v": view_category,
"s": save_category,
"d": delete_category
}
#
def category(request,op='',id=0):
return categoryAction.get(op)(request,id)
关于python的三元运算符实现
正常的三元运算符是这么使用的
布尔表达式 ? A : B
如果布尔表达式为true,则返回A,否则返回B,比如下面:
String a = 1==1 ? "true" : "false";
Python下有两种方式模拟。
第一种:布尔表达式 and A or B
比如 print( (1==1) and 'true' or 'false' )
但是注意如果A为''时,始终返回B。所以这种方法是有缺陷的。
第二种:A if 布尔表达式 else B
比如print( 'true' if (1==1) else 'false' )
这种是正确方案。
另外Python是动态强类型语言,所以A和B的类型不一定要相同,比如:
var result = 'a' if (1==1) else 2