dongdawang's recent timeline updates
first record!
Aug 15, 2018
dongdawang

dongdawang

V2EX member #281703, joined on 2018-01-11 13:56:18 +08:00
dongdawang's recent replies
Aug 22, 2018
Replied to a topic by danzzzz Python 关于浅拷贝的一个小问题。
指向呀
>>>c = [1, [2, 2]]
>>>d = list(c)
>>>id(c), id(d)
(76898120, 77072456)
>>>id(c[0]), id(d[0]), id(c[1]), id(d[1])
(1470780192, 1470780192, 77045704, 77045704)
Aug 15, 2018
Replied to a topic by akura Python pycharm 这个报错是什么原因,怎么解决
你解释器 interpreter 是不是指定错了
Jul 31, 2018
Replied to a topic by leewlab 全球工单系统 腾讯云开团的 BUG?
原来可以召唤呀
@lilydjwg
三个变量的交换
import dis
dis.dis("a=1;b=2;c=3;a,c,b=c,b,a")

1 0 LOAD_CONST 0 (1)
3 STORE_NAME 0 (a)
6 LOAD_CONST 1 (2)
9 STORE_NAME 1 (b)
12 LOAD_CONST 2 (3)
15 STORE_NAME 2 (c)
18 LOAD_NAME 2 (c)
21 LOAD_NAME 1 (b)
24 LOAD_NAME 0 (a)
27 ROT_THREE
28 ROT_TWO
29 STORE_NAME 0 (a)
32 STORE_NAME 2 (c)
35 STORE_NAME 1 (b)
38 LOAD_CONST 3 (None)
41 RETURN_VALUE
#三个变量的交换使用 ROT_THREE。

但是发现
无论是
dis.dis("a=1;b=2;(a,b)=(b,a)")
还是
dis.dis("a=1;b=2;a,b=b,a")
字节码命令都是
1 0 LOAD_CONST 0 (1)
3 STORE_NAME 0 (a)
6 LOAD_CONST 1 (2)
9 STORE_NAME 1 (b)
12 LOAD_NAME 1 (b)
15 LOAD_NAME 0 (a)
18 ROT_TWO
19 STORE_NAME 0 (a)
22 STORE_NAME 1 (b)
25 LOAD_CONST 2 (None)
28 RETURN_VALUE

也就是说无论几个元素交换,都是构建 tuple 来实现的?
发现了一个有趣的现象,两个变量交换和四个变量交换使用的不是同一种方法。
# 两个变量的交换
>>> dis.dis("a=100;b=1000;a,b=b,a")
1 0 LOAD_CONST 0 (100)
3 STORE_NAME 0 (a)
6 LOAD_CONST 1 (1000)
9 STORE_NAME 1 (b)
12 LOAD_NAME 1 (b)
15 LOAD_NAME 0 (a)
18 ROT_TWO
19 STORE_NAME 0 (a)
22 STORE_NAME 1 (b)
25 LOAD_CONST 2 (None)
28 RETURN_VALUE

# 四个变量的交换
>>> dis.dis("a=100;b=1000;c=10000;d=10000;a,c,d,b=b,a,c,d")
1 0 LOAD_CONST 0 (100)
3 STORE_NAME 0 (a)
6 LOAD_CONST 1 (1000)
9 STORE_NAME 1 (b)
12 LOAD_CONST 2 (10000)
15 STORE_NAME 2 (c)
18 LOAD_CONST 2 (10000)
21 STORE_NAME 3 (d)
24 LOAD_NAME 1 (b)
27 LOAD_NAME 0 (a)
30 LOAD_NAME 2 (c)
33 LOAD_NAME 3 (d)
36 BUILD_TUPLE 4
39 UNPACK_SEQUENCE 4
42 STORE_NAME 0 (a)
45 STORE_NAME 2 (c)
48 STORE_NAME 3 (d)
51 STORE_NAME 1 (b)
54 LOAD_CONST 3 (None)
57 RETURN_VALUE

###
两个变量交换的时候,python 没有构建 tuple,但是四个变量交换的时候,python 构建了 tuple。
pywin32,这个是不是你想要的?c#中只需要将 c++中的类型翻译成 c#中对应的类型就可以用了,python 应该一样。
应该是 IME 相关,你可以去看一下相关 API 的使用,以前用 c#写过点击 button,获取 textbox 中文本的功能。python 我记得也有 win32 的绑定。
Jul 18, 2018
Replied to a topic by cr4fun Python 有没有特别简单的 Python xmpp 服务器?
一楼很皮
Jun 29, 2018
Replied to a topic by frostming Python 有没有大佬搞深圳的 Python Meetup 啊
我先报名
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3050 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 25ms · UTC 12:11 · PVG 20:11 · LAX 05:11 · JFK 08:11
♥ Do have faith in what you're doing.