我试图了解Python中'is'关键字的定义是什么。
在我学习的课程中,讲师非常强调函数和方法(类函数)之间的区别。 当被问到时,讲师说它是一个函数,并把我引到Python的Operator类中,并且它是“ is_”方法(这是一种允许轻松使用运算符的方法,甚至不包括所引用的关键字)。
a is b
operator.is_(a,b)
我发现自己在为给出的答案而苦苦挣扎。 如果您能根据我对功能和方法的强调,解释一下“ is”是否属于其中,我将不胜感激。 如果没有,什么是正确的查看方式?
答案 0 :(得分:4)
is
(与a is b
一样)是运算符。具体来说,是二进制运算符-因为它需要两个对象(在示例中为a
和b
)作为输入。
使运算符不同于函数的是语法-两个 operands 位于 operator 的两侧。如果is
是一个函数,它将像is(a, b)
一样被调用。
operator.is_
是一个函数,它接受两个参数(我们叫它们a
和b
)作为输入并返回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
模块中定义的功能。