假设我们在一个类中有一个实例变量。
以下操作是否是原子性的?
我尝试搜索了一下,但我找到的唯一信息是读取实例变量是原子性的。
(编辑) 我尝试反编译字节码(Windows上的Python 2.7),但这并不是太有用。它只显示调用
(编辑2)我想知道使用set2 = set(set1)是否更好。
class MyClass(object):
def __init__():
self.set1 = set()
以下操作是否是原子性的?
set_shallow_copy = self.set1.copy()
我尝试搜索了一下,但我找到的唯一信息是读取实例变量是原子性的。
(编辑) 我尝试反编译字节码(Windows上的Python 2.7),但这并不是太有用。它只显示调用
set
上的copy
函数的Python字节码。 9 LOAD_FAST 0 (s)
12 LOAD_ATTR 1 (copy)
15 CALL_FUNCTION 0
18 STORE_FAST 1 (s2)
21 LOAD_CONST 0 (None)
24 RETURN_VALUE
(编辑2)我想知道使用set2 = set(set1)是否更好。
9 LOAD_GLOBAL 0 (set)
12 LOAD_FAST 0 (set1)
15 CALL_FUNCTION 1
18 STORE_FAST 1 (set2)
21 LOAD_CONST 0 (None)
24 RETURN_VALUE
copy
方法比调用内置的set
构造函数稍微快一点,但这与原子性无关。目标是什么? - ShadowRanger