V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  wwqgtxx  ›  全部回复第 68 页 / 共 193 页
回复总数  3842
1 ... 64  65  66  67  68  69  70  71  72  73 ... 193  
2017-08-25 19:11:48 +08:00
回复了 kisscucci 创建的主题 Python 树莓派连接二维码扫描器, web 如何实时显示传过来的数据?
最简单的办法还是用 flask-socketio,这个库我也用了一年多了,在树莓派上运行的也相当稳定,如果报错,你还是应该检查一下你的代码本身有没有问题,而不是怀疑类库
2017-08-25 00:56:42 +08:00
回复了 heynumber 创建的主题 Python 请教一个问题,关于发送请求的 headers 参数 key 大小写问题
@ysc3839 貌似只是在使用 HTTP/2 协议的时候才会显示小写的 Response Headers
2017-08-24 23:54:26 +08:00
回复了 wisej 创建的主题 Flask 请教一些关于 Flask 应用上下文 的问题
@wisej 不是还有各种钩子么,比如 app.before_request 之类的
2017-08-24 21:49:57 +08:00
回复了 billion 创建的主题 Python 如何逐次分别迭代多个生成器
@billion 在 Py3 中如果你写成(x for x in range (10)) 则不会,如果写成[x for x in range (10)]就会
2017-08-24 17:13:08 +08:00
回复了 billion 创建的主题 Python 如何逐次分别迭代多个生成器
@GeruzoniAnsasu 准确说应该是一个生成器而不是迭代器
2017-08-24 17:12:29 +08:00
回复了 billion 创建的主题 Python 如何逐次分别迭代多个生成器
@GeruzoniAnsasu 好吧,还真的是,不过这样两层迭代器嵌套也没啥意思。。
>>> ( x for x in range (10) )
<generator object <genexpr> at 0x000001F09127FFC0>
2017-08-24 17:08:23 +08:00
回复了 billion 创建的主题 Python 如何逐次分别迭代多个生成器
>>> ii = zip(range(1,6),range(6,11),range(11,16))
>>> i = iter(ii)
>>> next(i)
(1, 6, 11)
>>> next(i)
(2, 7, 12)
>>> next(i)
(3, 8, 13)
>>> next(i)
(4, 9, 14)
>>> next(i)
(5, 10, 15)
>>> next(i)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
2017-08-24 17:06:50 +08:00
回复了 billion 创建的主题 Python 如何逐次分别迭代多个生成器
@GeruzoniAnsasu 其实你这段代码的前两行并不用把 range 对象转换成 tuple 的,直接 zip()即可,这样能大幅度减少内存占用
2017-08-24 17:04:00 +08:00
回复了 billion 创建的主题 Python 如何逐次分别迭代多个生成器
@fanhaipeng0403 因为我忘记先调用 iter()了
2017-08-24 17:00:30 +08:00
回复了 billion 创建的主题 Python 如何逐次分别迭代多个生成器
a = range(1,6)
b = range(6,11)
c = range(11,16)

d = [iter(a),iter(b),iter(c)]

def y():
----while True:
--------for m in d:
------------yield next(m)

for i in y():
----print(i)
2017-08-24 16:59:24 +08:00
回复了 billion 创建的主题 Python 如何逐次分别迭代多个生成器
>>> a = range(1,6)
>>> b = range(6,11)
>>> c = range(11,16)
>>>
>>> d = [a.__iter__(),b.__iter__(),c.__iter__()]
>>>
>>> def y():
... while True:
... for m in d:
... yield next(m)
...
>>> for i in y():
... print(i)
...
2017-08-24 16:47:15 +08:00
回复了 billion 创建的主题 Python 如何逐次分别迭代多个生成器
a = range(1,6)
b = range(6,11)
c = range(11,16)

def y():
----while True:
--------yield a.__next__()
--------yield b.__next__()
--------yield c.__next__()

for i in y():
----print(i)
2017-08-24 15:03:12 +08:00
回复了 40huo 创建的主题 Python Python 多进程操作文件,文件锁好像并没有生效
@topbandit 你在 open 之前根本就没有 f 这个对象,怎么 lock
2017-08-24 14:01:28 +08:00
回复了 40huo 创建的主题 Python Python 多进程操作文件,文件锁好像并没有生效
我怎么觉得问题在这里
print(f.read())
return json.loads(f.read())
你读了两遍,写的时候却只写了一遍
2017-08-24 08:34:28 +08:00
回复了 saximi 创建的主题 Python 请教一个关于__getattr__的问题
@saximi 的确“使用 getattr 本身并不等于死循环”,但是如果调用父类的__getattr__会在最大层面上避免出现递归循环
第二,我说的不要直接用 getattr 是对于 self 这个对象的,即不要在你自己的__getattr__调用 self.xxx 或者 getattr(self,"xxx"),你的代码应该改成 return getattr(super(self,类名).__getattr__("wrapped"),attr)这样才不会导致死循环
2017-08-23 23:18:36 +08:00
回复了 saximi 创建的主题 Python 请教一个关于__getattr__的问题
在__getattr__中永远不要直接使用 getattr()或者 self.xxx ,应该使用 super(self,类名).__getattr__来访问
2017-08-19 08:46:38 +08:00
回复了 gdtv 创建的主题 问与答 windows10 有多个网络连接,请问如何指定默认的连接?
查询 route 命令的使用方法
2017-08-18 16:56:39 +08:00
回复了 masteryi 创建的主题 C 为什么这段代码能正确执行?
@irexy 你应该看看生成的汇编,你在编译 cout a 的时候 a 就已经被直接替换成 1 了,所以并不会被改变,类似于#define 的效果
2017-08-18 16:26:44 +08:00
回复了 masteryi 创建的主题 C 为什么这段代码能正确执行?
另外就是你的第一段代码如果用 GCC 的-O3 编译的话,编译器甚至都可以推测出来这里的值为 3
.file "test.cpp"
.text
.p2align 2,,3
.globl __Z1fv
.def __Z1fv; .scl 2; .type 32; .endef
__Z1fv:
pushl %ebp
movl %esp, %ebp
subl $16, %esp
leal -4(%ebp), %eax
leave
ret
.def ___main; .scl 2; .type 32; .endef
.section .rdata,"dr"
LC0:
.ascii "%d\12\0"
.text
.p2align 2,,3
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $4, %esp
call ___main
subl $8, %esp
pushl $3
pushl $LC0
call _printf
xorl %eax, %eax
movl -4(%ebp), %ecx
leave
leal -4(%ecx), %esp
ret
.def _printf; .scl 2; .type 32; .endef
2017-08-18 16:19:45 +08:00
回复了 masteryi 创建的主题 C 为什么这段代码能正确执行?
如果你想探根究底的话,就看看 GCC 生产的汇编
.file "test.cpp"
.text
.globl __Z1fv
.def __Z1fv; .scl 2; .type 32; .endef
__Z1fv:
pushl %ebp
movl %esp, %ebp
subl $16, %esp
movl $3, -8(%ebp)
leal -8(%ebp), %eax
movl %eax, -4(%ebp)
movl -4(%ebp), %eax
leave
ret
.def ___main; .scl 2; .type 32; .endef
.section .rdata,"dr"
LC0:
.ascii "%d\12\0"
.text
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
leal 4(%esp), %ecx
andl $-16, %esp
pushl -4(%ecx)
pushl %ebp
movl %esp, %ebp
pushl %ecx
subl $20, %esp
call ___main
call __Z1fv
movl %eax, -8(%ebp)
movl -8(%ebp), %eax
movl (%eax), %eax
subl $8, %esp
pushl %eax
pushl $LC0
call _printf
addl $16, %esp
movl $0, %eax
movl -4(%ebp), %ecx
leave
leal -4(%ecx), %esp
ret
.def _printf; .scl 2; .type 32; .endef

看懂了这段汇编就能解释为什么函数结束了还能访问到那个 3 了
1 ... 64  65  66  67  68  69  70  71  72  73 ... 193  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5424 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 45ms · UTC 05:50 · PVG 13:50 · LAX 21:50 · JFK 00:50
Developed with CodeLauncher
♥ Do have faith in what you're doing.