pop()语句会在if 条件里运行?

问题遇到的现象和发生背景
        请问谁能说明一下POP()函数可以在if的条件里运行?
    if dic[stack.pop()] != c: # pop命令可以在if条件句里运行
用代码块功能插入代码,请勿粘贴截图
 s = '{{[[(]]}()}'

def isvalid( s):
dic = {'{': '}', '['::']', '(': ')', '?': '?'}
stack = ['?']
for c in s:
if c in dic:
print(c)
stack.append(c)
print(stack)

    elif dic[stack.pop()] != c:                    # pop命令可以在if条件句里运行

        print(stack+['!'])
        return False
return len(stack) == 1

l = isvalid(s=s)
print(l)

运行结果及报错内容

img

只要返回值是布尔类型的,true或者false,都可以作为if条件

为啥不可以呢, pop() 方法默认删除并返回最后一个元素,他是有返回值的呀,包括我们的if判断他的条件都可以写表达式,或者说一些复杂的表达式,它会先计算,然后产生最终的结果,就是if的判断条件。
有帮助的话采纳一下哦!