V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  NoAnyLove  ›  全部回复第 19 页 / 共 25 页
回复总数  490
1 ... 11  12  13  14  15  16  17  18  19  20 ... 25  
2017-06-24 02:14:58 +08:00
回复了 nomoon 创建的主题 Linux ryzen 可以装哪些发行版?
按理说 Linuxe Kernel 4.10 以上应该就能支持 Ryzen 的啊。Ubuntu 17.04 应该用的就是 4.10 吧
2017-06-22 10:23:12 +08:00
回复了 csdreamdong 创建的主题 Python Python list 根据百分比切成若干个。
直接用方括号切片,如果我没记错的话,是一定会产生一个新的 copy 的。。。。。。
2017-06-22 10:21:52 +08:00
回复了 Kakarrot 创建的主题 Python Python 如何控制 windows 系统服务?
2017-06-21 12:44:14 +08:00
回复了 liteyou 创建的主题 Ruby on Rails 为什么是 Ruby on Rails?而不是 Rails on Ruby?
当年学 Ruby On Rails 的时候,不记得是教材里面讲的,还是老师说的:“ Ruby On Rails 和 Ruby 可以算作两个东西,所以即使你不会 Ruby,学习 Ruby On Rails 也不会有难度”。。。。。大概是这么的一段话,反正总体意思和#2 楼差不多
2017-06-21 10:58:46 +08:00
回复了 beginor 创建的主题 数据库 客户给了一张数据表, 列名中英文混合, 这酸爽!
@laoyur
我第一次知道数据库列名还能用中文 +1
@keakon 非常干感谢你的回复,我反复读了很多遍,感觉明白了很多。我本来纠结的是功能上为啥需要 generator-based coroutine,不过你从逻辑上说明了为啥需要 generator-based coroutine,让我也有种豁然开朗的感觉。

《 How the heck does async/await work in Python 3.5?》也提到如果只是和事件循环打交道,其实不用关心这些细节,因为框架 API 会帮助我们处理这些细节。不过我刚好对为啥不能通过 async 定义的协程来实现 asyncio.sleep()比较好奇,所以想研究一下。

我的感觉上是,最底层的协程,必须要通过`yield`或者`yield from`语句,将执行流程转交给处于调用最顶层的事件循环。从调试 step in 跟进的结果来看,await 语句不会捕获`yield`或者`yield from`返回的值,这个值会被传递给事件循环,也就是调用`coro.send(None)`的地方。如果最底层的函数也是通过`async def`定义的,那么将没有办法把执行流程转移给事件循环。

考虑到“暂停并强制性返回给事件循环”,我想到其实还可以抛出异常,因为异常如果没有捕获就会向上传递,可以被事件循环捕获到。结果试了一下不行,才想起异常抛出后,虽然会向`yield`或者`yield from`一样暂停当前执行,但是不会从抛出异常的地方继续自行,Orz
2017-06-20 00:48:15 +08:00
回复了 justou 创建的主题 Python 踩了个陷阱: Python bitwise ~ vs. C bitwise ~
因为 Python 的 int 是无限长度的,如果对一个正整数取反,会变成负数,你可以认为符号位是无限长度的 1:

```
>>> mask = 0xFF
>>> bin(mask)
'0b11111111'
>>> ~mask
-256
>>> bin(~mask)
'-0b100000000'
```

`bin(~mask)`返回结果'-0b100000000',前面的`-0`就是相当于无限长度的符号位,如果用 Two ‘ s Complement 来表示就全是 1.

解决这个问题也很简单,将结果按位与 0xFFFFFFFF (刚好 32 位 bit )运算,就可以消除掉超过 32 位的无限长度的符号位。

```
>>> ~mask & 0xFFFFFFFF
4294967040
>>> hex(_)
'0xffffff00'
```
@shyling accepted 的那个答案,投票为 0,明显是错误的,两者并不是完全没有区别。另一个比较可靠一点的说明在这里<https://stackoverflow.com/questions/40571786/asyncio-coroutine-vs-async-def>

@gnaggnoyil `asyncio.Future`可以用于`await`语句,它有实现`__await__()`方法。

我用 pudb 调试《 How the heck does async/await work in Python 3.5?》中最后给出的那个 Example。从代码的运行流程来看,Example 中 sleep 协程的`actual = yield wait_until`语句有点像 Exception 的感觉,step in 会跳回到`waited = await sleep(1)`,再一次 step in,就会像 Exception 没有被处理继续 propagate 一样,跳到了事件循环`run_until_complete`函数中。

感觉还有点混乱。
@shyling 以`async def`声明的函数算作 native coroutine,不算 generator-based 的协程
2017-06-18 14:00:00 +08:00
回复了 elfive 创建的主题 全球工单系统 真心被 [亚马逊] 的退货退款给折服了
对比一下,美亚好到什么程度(我道听途说的)。听说有个学姐本来想在美亚订两袋方便面,结果下错了单订成了两箱。收货的时候收到了两大箱整个人都惊呆了,然后联系客服问能不能退货。客服说:你不用退货了,我直接给你全额退款,那两箱你就留着吃吧。美亚客服就是这么任性。。。。。
2017-06-18 12:16:15 +08:00
回复了 SimbaPeng 创建的主题 Python 谁能确切的解释一下这是为什么?
我一定是遇到了一个假 Python ( 2.7.10 和 3.5.1 ):

```
>>> def test():
2 a = []
3 print(id(a))

>>> test()
990348293256

>>> test()
990355193096

>>> test()
990352013960
```
2017-06-18 03:47:07 +08:00
回复了 ray1888 创建的主题 Python asyncio 的 await 回调需要的条件是什么?
代码排版看得头痛,直接跳过了。如果只看标题的话,一个用于 await 语句的对象必须是 awaitable 的,即实现了`__await__`方法,对应的 abc 是 collections.abc.Awaitable,可以用`isinstance(gencoro, Awaitable)`进行判断。

此外,基于生成器的 coroutine 对象(用 types.coroutine 和 asyncio.coroutine 修饰器修饰),虽然没有实现`__await__`方法,但是也被认为是 awaitable 的,可以被用于 await 语句。但是这种对象如果用上面的 isinstance 判断会返回 False。可以使用`inspect.isawaitable()`判断。
`aa`应该算作 function 了。另外,`inspect`模块也可以用:

```
>>> import inspect
>>> inspect.getmembers(A, inspect.isfunction)
[('aa', <function __main__.A.dd>),
('d', <function __main__.A.d>),
('dd', <function __main__.A.dd>)]
```

```
>>> inspect.getmembers(A, lambda x: not callable(x))
[('__dict__',
mappingproxy({'__dict__': <attribute '__dict__' of 'A' objects>,
'__doc__': None,
'__module__': '__main__',
'__weakref__': <attribute '__weakref__' of 'A' objects>,
'a': '这是属性',
'aa': <function __main__.A.dd>,
'd': <function __main__.A.d>,
'dd': <function __main__.A.dd>})),
('__doc__', None),
('__module__', '__main__'),
('__weakref__', <attribute '__weakref__' of 'A' objects>),
('a', '这是属性')]
```
2017-06-15 00:13:39 +08:00
回复了 mrcn 创建的主题 Android 应用内直接运行 apk 免安装?这是什么黑科技?
@codehz 没有试过。这种方式运行的程序会有什么不同吗?
2017-06-14 11:42:03 +08:00
回复了 Antidictator 创建的主题 程序员 久违的 hao123 劫持,就想知道怎么中招的?
@fourstring 这个我倒是没有和 WPS 对比过。不过我用 LibreOffice 打开会出现排版错误的文档,用 Google Doc 打开一样是错误的,除非用 Office
2017-06-14 09:58:35 +08:00
回复了 Antidictator 创建的主题 程序员 久违的 hao123 劫持,就想知道怎么中招的?
@Antidictator 呃。。。。。发现是打错了。之前用的是 WPS 和金山词霸。。。。。。不是毒霸。。。。。。
2017-06-14 07:35:31 +08:00
回复了 mrcn 创建的主题 Android 应用内直接运行 apk 免安装?这是什么黑科技?
热更新既然可以直接读取 Class 文件来运行( ClassLoader ),那么直接把 apk 文件解压取出 dex 文件,再从 dex 文件中取出 class 文件来加载应该也是可以的吧。感觉 Smali 库应该就能做到,不过我没试过,感觉有点意思。
2017-06-14 07:30:15 +08:00
回复了 Antidictator 创建的主题 程序员 久违的 hao123 劫持,就想知道怎么中招的?
之前还去微博 WPS 官网上怼过 WPS 的广告问题。软件里面的广告我可以理解,但是时不时在桌面和浏览器里面直接弹广告就不能忍了。结果被官微回复不想看广告可以买会员啊。。。。。。。。。所以,郑重地向大家推广 libreoffice
1 ... 11  12  13  14  15  16  17  18  19  20 ... 25  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   987 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 34ms · UTC 19:31 · PVG 03:31 · LAX 12:31 · JFK 15:31
Developed with CodeLauncher
♥ Do have faith in what you're doing.