在python2中,可以使用 print 123
和 print(123)
,同时使用 assert True
和 assert(True )
。
在python3中,为什么我不能在使用 assert True
的同时使用 print 123
?
答案 0 :(得分:0)
简短的回答:assert
不是函数。
长答案:
当python3出现时,它更改(或删除了)print sth
语法,因为print
成为内置的函数,因此应调用 >。
尽管assert
可以像函数一样使用(assert(True)
),但它不是函数-实际上,它是python3 grammar中的语法,例如在python2 was中打印。
与print
不同,在执行class 'builtin_function_or_method'
时类型为type(print)
,而当您尝试type(assert)
或type(if)
时,会得到以下信息:
SyntaxError: invalid syntax
因此,在使用print 123
时不能使用assert True
,因为两者是不同的。
答案 1 :(得分:0)
在Python 2中,print
和assert
都是语句(例如if
,while
,def
等)。在这种情况下,paren不会被解释为函数调用运算符,而将被解释为普通的parens,从而迫使对其内容进行评估,在这种情况下,这是空操作,实际上被认为是非Python的。
在Python 3中,print()
成为一个函数,因此您必须 对其进行调用。 assert
仍然是一条语句,因此它的工作原理与Python 2中的工作一样。