为什么p和p8在下面的代码中不同?
视图函数的开头(在名为“proteinSearch”的Django应用程序中的views.py文件中,模型名为“Protein”,其字段名为“description”):

def searchForProteins2(request, searchStr):
    p8 = Protein.objects.filter( description__icontains=searchStr)

    #Why doesn't this work?????
    p  = Protein.objects.filter( description__icontains=searchStr)

    import pdb; pdb.set_trace()

在pdb中交互:
    (Pdb) searchStr
    u'centr'
    (Pdb) p8
    [<Protein: IPI00657962.1>, <Protein: IPI00479143.2>, <Protein: IPI00477050.4>, <Protein: IPI00220625.1>,
    95.2>]
    (Pdb) p
    *** SyntaxError: SyntaxError('unexpected EOF while parsing', ('<string>', 0, 0, ''))

最佳答案

当您处于调试模式(pdb或ipdb REPL)时,“p”表示特定功能,即计算表达式expr。
就像,

ipdb> x = 1
ipdb> p x
1
ipdb> p x==True
True
ipdb> p x==1
True

在Django中,“p”只表示变量。
如果要打印“p”变量的值,请尝试,
ipdb> p p

:)

关于python - “p”在Django中是否有特殊含义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1880753/

10-09 03:04