我发现自己输入了很多内容(为Django开发,如果相关的话):
if testVariable then:
myVariable = testVariable
else:
# something else
或者,更常见的是(即建立参数列表)
if 'query' in request.POST.keys() then:
myVariable = request.POST['query']
else:
# something else, probably looking at other keys
是否有一条我不知道的捷径简化了这一点?有某种逻辑的myVariable = assign_if_exists(testVariable)
?
答案 0 :(得分:25)
假设你想在“不存在”的情况下保持myVariable不变为其先前的值,
myVariable = testVariable or myVariable
处理第一个案例,
myVariable = request.POST.get('query', myVariable)
处理第二个问题。这两者都与“存在”无关(这几乎不是Python的概念;-):第一个是关于真或假,第二个是关于集合中是否存在密钥。
答案 1 :(得分:7)
奇怪的是第一个例子...为什么要将布尔值设置为另一个布尔值?
你可能的意思是当testVariable不是零长度字符串时将myVariable设置为testVariable,或者不是或者没有恰好评估为False的东西。
如果是这样,我更喜欢更明确的配方
myVariable = testVariable if bool(testVariable) else somethingElse
myVariable = testVariable if testVariable is not None else somethingElse
索引到字典时,只需使用get
。
myVariable = request.POST.get('query',"No Query")