(py_pc064_03.08_test0_lancer) [cfati@cfati-5510-0:/mnt/e/Work/Dev/StackExchange/StackOverflow/q077252899]> . ~/sopr.sh
### Set shorter prompt to better fit when pasted in StackOverflow (or other) pages ###
[064bit prompt]> python -m black -c "not True"
not True
[064bit prompt]> python -m black -c "not (True)"
not (True)
[064bit prompt]> python -m black -c "~ 1"
~1
3条答案
按热度按时间qltillow1#
那么,为什么要使用
not(True)
或更一般的not(x)
呢?语法
a(b)
通常会被读取为对函数a
的函数调用,参数为b
。但是
not
不是一个函数,not(x)
也不是一个函数调用。在Python中,not
是一个内置的 * 运算符 *,它不能被重载。括号是多余的。所以,不管你使用这种语法的意图是什么,
not(x)
只会误导那些对Python有正常理解的人。这不是Pythonic。h4cxqtbf2#
更“pythonic”的方式是第二种没有括号的选择。
zsohkypk3#
根据[Python.]:内置类型-布尔运算- and,or,not(强调是我的):
not x
-如果x为假,则True
,否则False
所以,首选的形式是不带括号。
原因可能是:
[Python.PEPs]: PEP 8 - Style Guide for Python Code也包含一些示例。