python中的“ if”是什么类型?

时间:2018-10-25 23:44:48

标签: python

if [conditional]:
    program
else:
    program_alternative

如何重新定义if所用的符号?如果我想使用Unicode字符怎么办-python允许吗?例如≸代替字符串“ if”。

有什么办法可以使用这种语法?我可以说type(if)还是type(__if__)

我知道python允许变量具有unicode名称,但是如果我特别想使我的代码不可读怎么办。

或者,这是解析器完成的而不会受到影响的吗?

4 个答案:

答案 0 :(得分:4)

是正确的:“ [{if是..] 解析器完成的操作,不会受到影响”。

为澄清起见,ifreserved keyword所定义的特定语法结构的Python language。通常,保留字不能用作标识符,并且具有特殊的解析规则和行为。

同样,type(if)甚至在语法上也不有效,并且将无法解析:程序无效/非法/伪造的Python,并且出现的问题“ if是否具有类型?”不适用。

  

我们不能将关键字用作变量名,函数名或任何其他标识符。它们用于定义Python语言的语法和结构。

没有特殊的“ if协议”,__if__是未声明的标识符。

答案 1 :(得分:1)

在cpython中(其他实现 可能有所不同,但我对此表示怀疑),if关键字是在语法(for example)中按字面值指定的。其他所有内容(包括解析器)都是从此文件构建的。

if更改为其他内容后,您可以从头开始重建cpython解释器...但我不确定它的用处。

答案 2 :(得分:1)

首先参见help(无关):

>>> help('if')
The "if" statement
******************

The "if" statement is used for conditional execution:

   if_stmt ::= "if" expression ":" suite
               ( "elif" expression ":" suite )*
               ["else" ":" suite]

It selects exactly one of the suites by evaluating the expressions one
by one until one is found to be true (see section Boolean operations
for the definition of true and false); then that suite is executed
(and no other part of the "if" statement is executed or evaluated).
If all expressions are false, the suite of the "else" clause, if
present, is executed.

Related help topics: TRUTHVALUE

>>> 

因此,任何SyntaxError对您所做的type操作都意味着没有好的类型,(因此基本上是无类型的)

因此,请在您的解释器中查看这些函数的颜色,然后记住不要从那些类型中提取类型:-)

答案 3 :(得分:0)

条件运算符“ if”的内置关键字必须根据文档https://docs.python.org/3.7/reference/lexical_analysis.html#keywords

的实现方式使用。