相关疑难解决方法(0)

为什么使用'=='或'is'比较字符串有时会产生不同的结果?

我有一个Python程序,其中两个变量设置为该值'public'.在条件表达式中,我的比较var1 is var2失败了,但是如果我将其更改为var1 == var2它则返回True.

现在,如果我打开我的Python解释器并进行相同的"是"比较,它就会成功.

>>> s1 = 'public'
>>> s2 = 'public'
>>> s2 is s1
True
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?

python string comparison identity equality

1076
推荐指数
13
解决办法
148万
查看次数

在Python中嵌套函数时是否存在开销?

在Python中,如果我在父函数中有子函数,那么每次调用父函数时子函数是否"初始化"(创建)?将函数嵌套在另一个函数中是否存在任何开销?

python nested function

59
推荐指数
4
解决办法
8690
查看次数

python'不是'运营商

我注意到有一个比较运算符is not.我应该把它翻译成

!= 
Run Code Online (Sandbox Code Playgroud)

代替

== not
Run Code Online (Sandbox Code Playgroud)

python

44
推荐指数
3
解决办法
6万
查看次数

为什么id(A())== id(A())与A()不同是A()?

我对下面的python代码很困惑:

>>> class A(): pass  
...  
>>> id(A()) == id(A())  
True  
>>> id(A())  
19873304  
>>> id(A())  
19873304
>>> A() is A()
False
>>> a = A()
>>> b = A()
>>> id (a) == id (b)
False
>>> a is b
False
>>> id (a)
19873304
>>> id (b)
20333272
>>> def f():
...     print id(A())
...     print id(A())
...
>>> f()
20333312
20333312
Run Code Online (Sandbox Code Playgroud)

我可以清楚地告诉自己在创建对象时python正在做什么.
谁能告诉我更多关于发生了什么的事情?谢谢!

python

6
推荐指数
2
解决办法
132
查看次数

标签 统计

python ×4

comparison ×1

equality ×1

function ×1

identity ×1

nested ×1

string ×1