V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  GeruzoniAnsasu  ›  全部回复第 147 页 / 共 149 页
回复总数  2977
1 ... 139  140  141  142  143  144  145  146  147  148 ... 149  
@jakeyfly
你摆出来的这个例子并没有很好提现 iterable 和对应 iterator 的关系所以你没啥感觉
一个类确实可以同时实现 next 和 iter 两个内置方法,典型的你看 generator 对象就能被获取 iterator,也能调用 next,但对它自己调用 next 还是获取迭代器去访问它内部的元素,意义是完全不一样的

但从逻辑和结构上来说,iterable 是容器,iterator 是访问器,它们的功能就是不一样的。比如现在迭代器已经指向了容器中的某个位置,然后你需要把这个位置信息传递给其它方法去处理,那你肯定希望函数参数传的是一个迭代器,而不需要把原来的整个容器一并传进来;如果还不是很理解,下面这个不很好的例子起码能体现出区别

instance = MyIterable([1,2,3,4,5,6,7,8,9,10])#MyIterable 是随便什么 iterable 类
it = iter(instance)

print( *zip( it,it ) )
print( *zip( instance,instance ) )
print( *zip( *[iter(instance)]*2 ) )
Python 里的可迭代对象 iterable 和迭代器 iterator 令人迷惑得厉害
总的来说
迭代器 iterator 是可迭代对象 iterable 的 访问器
迭代器 iterator 原本应该是一个指针,也就说应该具有 iterator->obj::*这种语义,同时迭代器迭代位置还能移动,调用 iterator.__next__()能获取被迭代对象的下一个元素
iterable 保证能返回一个用于访问其内容的迭代器(或者随机访问器__getitem__),一般 iterable 是某种容器,容器中内容具体如何组织我们不关心,我们只关心怎么取出来然后怎么用,而组织“怎么取”,就是迭代器要做的工作

iterable 不仅包括迭代器关心的那些元素,还包括很多很多其它的东西,比如你可以把整个 v 站视为可迭代的,给它定义一个专门的迭代器对象用来浏览每一个帖子,当你 for 帖子 in v 站的时候这个迭代器帮你遍历所有帖子,但你还可以 v 站.refresh(),v 站.down(),v 站.block(uid)什么的,当你不需要遍历 iterable 的时候,iterable 本身还有很多其它的属性和方法
2017-12-01 14:13:31 +08:00
回复了 singvee 创建的主题 程序员 开源代码,编译不过,哪位大神知道怎么回事~~~
别管怎么编过,永远不要给 format 传可变参数,根本不该有这种需求,会造成严重的安全隐患
2017-11-16 10:29:39 +08:00
回复了 scarqin 创建的主题 程序员 浅谈 Sdk 与 Api,你是喜欢 SDK 还是 API?
恕我直言 mdzz
不要立个假靶子,是 concurrency 并发不是并行。
2017-11-13 12:16:55 +08:00
回复了 zhicheng 创建的主题 程序员 分享一个新的编程语言 Lemon 。
我感觉新创造的语言一定要专注于解决某个痛点的问题,一味吸收各种特性最后并不会变得优秀,只会看起来四不像

C++这种大而全但东西和概念太多神 tm 难用,内存管理靠上帝之眼,new 一下下辈子再回收
python 动态类型 项目一大立马吃屎传进来的是个什么鬼完全不知道,文档少写一点都要命
JS PHP 弱类型 = == === 数字字符串数组一混分分钟自己挖个洞
java 要性能被虚拟机拦死,内存占用 1 个 T (看向 jetbrains ),GC 一动卡三年

这些语言都有独特的短板,而相当多语言就是专门解决痛点诞生的,比如 rust typescript lua

我觉得 lua 就非常独特而且很成功,目标就是在一个高性能低抽象难开发的系统中引入能快速实现逻辑的脚本,而高级数据结构和库都可在宿主中提供,lua 只专注提供方便于宿主沟通的相互接口。看看游戏结构,一个引擎+一坨数据+一坨琐碎的特效 /动作 /剧本等等业务逻辑,与 lua 简直天作之合,于是几乎在所有游戏里都能见到 lua 的身影



再看看 lz 发的官网文档。。。首先语法大杂烩,python js 都有,然后同样是动态类型,有着 python 一样的短板,也没有更多语法糖尝起来更甜,到这就已经 emmmmmmmmm 了,然后仔细一看还有两种空类型,两种数字,还跟 lua 一样从较少的数组解包到更多变量不会报错自动 nil,感觉已经眼前一黑。括号和分号的问题其实……挺 hhh 的,看起来就是凭个人口味的结果,并没有重新思考过各种 token 到底起什么作用,不然你应该能发现那么多种注释没什么用并且分号作为单行分句符并不需要行尾强制

能自主实现编程语言是非常牛逼的大牛,我表示很崇拜。。。但是大牛玩玩具也只是玩具,变不成宝剑
2017-11-10 17:15:36 +08:00
回复了 yxin108 创建的主题 问与答 [爱奇艺] 招聘 C++开发工程师!
我想想,OC==C 艹是啥时候的事?我咋想不起来
pyqt 不懂
但 qtc++里 QImage::Format_Mono 和 QImage::Format_MonoLSB 可定义以 bit 表示 pixel 的图像
应该可以直接将原始数据流转成 QImage 然后显示
参考文档 http://doc.qt.io/qt-5/qimage.html#Format-enum

另外 50fps 帧率很高了,可能会考虑上 opengl,在 qt 里用它自己封装的 opengl 类不复杂,但 pyqt 可能编译的时候没有带 opengl 模块,这个自己斟酌吧
2017-10-31 13:54:15 +08:00
回复了 waitmoonman 创建的主题 PHP PHP 把源文件加密到 BMP 位图
你这个做法,rgb565 的 bmp 和 rgba 的 bmp 都不适用的,另外宽度不对齐到 4 的 24 位 bmp 有额外的字节可以用

都是基本操作没啥特别的
2017-10-25 15:41:46 +08:00
回复了 Warder 创建的主题 Windows vs 中设置了调试程序为 regsvr32,如何以 admin 方式启动它?
@Warder 标准方法应该就这样的,如果程序 manifest 要 uac,调试运行也会弹窗提示你用管理员重启 vs
2017-10-25 15:33:12 +08:00
回复了 Warder 创建的主题 Windows vs 中设置了调试程序为 regsvr32,如何以 admin 方式启动它?
用管理员启动 vs
2017-10-25 15:25:42 +08:00
回复了 LeanCloud 创建的主题 推广 # 如何一句话惹毛程序员?# 留言领取关爱程序员 T 恤
我觉得最 tm 不能忍的是

这些新功能都不用做的,你搞他干嘛,赶快删了,用回原来那个,回滚一下很快吧,今天能不能行?
求物理学大神,化学大神,佛学大神,道学大神,大法学大神看看能不能实现如下需求。

我想搞一辆推一下就能自己不停往前走不用加油的车,先搞出个轮子也行。
2017-10-25 15:02:56 +08:00
回复了 toyuanx 创建的主题 问与答 怎样才算“不宅”?
宅 => 单身


lz 为啥一直回避
2017-10-25 14:58:24 +08:00
回复了 moonkiller 创建的主题 奇思妙想 类似 SVN 或者 git 的字幕在线众包服务?
上万粉丝的剧 大概只有 5 个人会翻
一人翻译 10 句的样子
2017-10-24 13:57:05 +08:00
回复了 johnsneakers 创建的主题 Go 编程语言 看得好心累,到处都是 interface 的 go 代码该怎么阅读
到处都是 template 的 c++代码怎么阅读
到处都是 interface 的 java 代码怎么阅读。。。。
1 ... 139  140  141  142  143  144  145  146  147  148 ... 149  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1039 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 41ms · UTC 19:28 · PVG 03:28 · LAX 11:28 · JFK 14:28
Developed with CodeLauncher
♥ Do have faith in what you're doing.