的“ is”关键字是函数吗?

时间:2019-04-01 17:36:42

标签: python python-2.7 function methods operator-keyword

我试图了解Python中'is'关键字的定义是什么。

在我学习的课程中,讲师非常强调函数和方法(类函数)之间的区别。 当被问到时,讲师说它是一个函数,并把我引到Python的Operator类中,并且它是“ is_”方法(这是一种允许轻松使用运算符的方法,甚至不包括所引用的关键字)。

a is b
operator.is_(a,b)

我发现自己在为给出的答案而苦苦挣扎。 如果您能根据我对功能和方法的强调,解释一下“ is”是否属于其中,我将不胜感激。 如果没有,什么是正确的查看方式?

2 个答案:

答案 0 :(得分:4)

  • is(与a is b一样)是运算符。具体来说,是二进制运算符-因为它需要两个对象(在示例中为ab)作为输入。

    使运算符不同于函数的是语法-两个 operands 位于 operator 的两侧。如果is是一个函数,它将像is(a, b)一样被调用。

  • operator.is_是一个函数,它接受两个参数(我们叫它们ab)作为输入并返回a is b 。它是is运算符的功能等效项。 (documentation of the operator module的标题甚至是“标准运算符作为函数”。)

    此外,operator.is_ 不是方法。 operator是一个模块,而不是一个类,而is_是在该模块中定义的函数。

答案 1 :(得分:1)

is运算符检查两个操作数是否引用相同的对象。它比较身份。 而==比较两个操作数的值并检查值是否相等。通过检查是否相等来进行比较。

以下是一个简单的示例:

# [] is an empty list

list1 = [] 
list2 = [] 
list3 = list1 

if (list1 == list2): 
    print("True") 
else: 
    print("False")

if (list1 is list2): 
    print("True") 
else: 
    print("False") 

if (list1 is list3): 
    print("True") 
else:     
    print("False")

输出应如下所示:

True
False
True
  • 在您提供的示例中:
  • a is b中,is运算符
  • operator.is()
  • operator是一个模块
  • is()operator模块中定义的功能