怎么给普通人讲“迭代器”“生成器”,“继承” - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
night277278
V2EX    程序员

怎么给普通人讲“迭代器”“生成器”,“继承”

  •  1
     
  •   night277278 2020-01-10 09:56:04 +08:00 7223 次点击
    这是一个创建于 2185 天前的主题,其中的信息可能已经有所发展或是发生改变。
    55 条回复    2020-01-11 10:28:13 +08:00
    wysnylc
        1
    wysnylc  
       2020-01-10 10:07:01 +08:00
    尝试用嘴巴?
    maichael
        2
    maichael  
       2020-01-10 10:08:26 +08:00
    不要给普通人讲
    murmur
        3
    murmur  
       2020-01-10 10:10:01 +08:00
    我作为程序员都不喜欢 generator,这东西估计 python 用习惯 yield 的人会喜欢
    lihongjie0209
        4
    lihongjie0209  
       2020-01-10 10:10:12 +08:00   4
    普通人为什么要懂?
    mitu9527
        5
    mitu9527  
       2020-01-10 10:10:38 +08:00
    如果他真是一个不懂编程的“普通人”,你又何必和他讲这些,能推就推,可以谈点别的;如果要炫技,直接拿一些他们能看得到的东西就行了。别徒增自己的烦恼。
    aREMbosAl
        6
    aREMbosAl  
       2020-01-10 10:11:37 +08:00 via iPhone
    Don’ t
    night277278
        7
    night277278  
    OP
       2020-01-10 10:12:12 +08:00   1
    大家好,楼主是那个刚入门减头发的普通人。
    czhfrank
        8
    czhfrank  
       2020-01-10 10:15:47 +08:00
    首先看你出于什么目的

    如果为了学编程,那就正经教就是了,程序员也是普通人,最初也是按课本学的,同为普通人,一样能学会

    如果不是出于学习目的,不懂为什么要教这些。。。
    IMCA1024
        9
    IMCA1024  
       2020-01-10 10:15:55 +08:00
    比喻啊。。
    julyclyde
        10
    julyclyde  
       2020-01-10 10:19:58 +08:00   4
    @IMCA1024 比喻是最没用的一种教学方法了
    自以为需要比喻才能懂的人,其实根本达不到懂的水平
    noobsheldon
        11
    noobsheldon  
       2020-01-10 10:22:19 +08:00
    榨好的果汁,现榨果汁,加了 A 果汁的 B 果汁
    kop1989
        12
    kop1989  
       2020-01-10 10:23:27 +08:00
    继承可以用比喻。现实中父子关系的名词概念很多。
    迭代器不好讲,因为很难确切。
    生成器不懂是个啥……
    ghostheaven
        13
    ghostheaven  
       2020-01-10 10:27:14 +08:00 via Android
    比喻一下吧,但是,如果没有数据结构和算法基础的还是先入门这两个
    CosimoZi
        14
    CosimoZi  
       2020-01-10 10:29:00 +08:00
    当然是从范畴论,函子讲起.
    RedisMasterNode
        15
    RedisMasterNode  
       2020-01-10 10:32:50 +08:00
    @ghostheaven 楼主这些内容和数据结构与算法,有什么联系吗
    hjq98765
        16
    hjq98765  
       2020-01-10 11:23:46 +08:00
    只讲概念很简单的吧?

    如果是想把各自适用的应用场景讲明白,那就复杂了
    2kCS5c0b0ITXE5k2
        17
    2kCS5c0b0ITXE5k2  
       2020-01-10 11:28:08 +08:00
    @kop1989 生成器 理解起来挺简单的 但是用起来绕死了...
    ming7435
        18
    ming7435  
       2020-01-10 11:32:46 +08:00
    程序员非普通人?
    loading
        19
    loading  
       2020-01-10 11:34:36 +08:00 via Android
    讲不出来就是都没学透,就像我一样,那就别讲了。
    nnqijiu
        20
    nnqijiu  
       2020-01-10 11:40:49 +08:00
    普通人为什么要懂?
    userdhf
        21
    userdhf  
       2020-01-10 11:41:18 +08:00
    生成器:单步控制,能暂停 /继续
    迭代器:手动遍历。
    jevonszmx
        22
    jevonszmx  
       2020-01-10 11:50:02 +08:00
    @noobsheldon

    哈哈,我真的 用果汁和同事妹子解释过 svn 树冲突。。。
    zmqking
        23
    zmqking  
       2020-01-10 11:50:46 +08:00
    有个说话是,如果不能跟一个普通人讲清楚一个原理或者技术,说明自己对这个东西还不是很熟悉!大道至简,我觉得任何复杂的东西应该都可以讲清楚的!讲不清楚说明还没有充分了解他
    ddzzhen
        24
    ddzzhen  
       2020-01-10 12:22:57 +08:00 via Android
    逻辑浅显易懂的表达,确实不太好讲,需要讲师专门备课
    lrxiao
        25
    lrxiao  
       2020-01-10 12:30:06 +08:00   1
    迭代器: 有 next 的东西
    生成器: 可以片片段段执行的东西
    继承: is-a
    syahd
        26
    syahd  
       2020-01-10 12:35:10 +08:00 via Android
    迭代器我觉得类似抽纸,抽完一张下面会自动冒出来直到用完。
    zgqq
        27
    zgqq  
       2020-01-10 13:12:51 +08:00
    不从事这个行业,懂了有什么用
    houzhimeng
        28
    houzhimeng  
       2020-01-10 13:28:39 +08:00
    Python 中一个实现了_iter_方法和_next_方法的类对象,就是迭代器


    只需要一个 yiled 关键字就是生成器

    原文:https://nvie.com/posts/iterators-vs-generators/
    hikarugo
        29
    hikarugo  
       2020-01-10 13:32:24 +08:00
    @julyclyde 你在说啥啊?“自以为需要比喻才能懂的人,其实根本达不到懂的水平” 不懂才要人教啊?而且比喻作为最没用的教学方法出处请问是?
    zhuangzhuang1988
        30
    zhuangzhuang1988  
       2020-01-10 13:36:18 +08:00
    好为人师是不对的.
    augustheart
        31
    augustheart  
       2020-01-10 13:36:20 +08:00
    这玩意自己用最基本的语法写个出来就懂了。看不懂是因为这里面掺了大量的语法糖,各种隐式调用,其实说开来没啥。
    啥?等等?啥叫普通人?是懂程序的普通人还是不懂程序的普通人……
    guanhui07
        32
    guanhui07  
       2020-01-10 13:37:30 +08:00
    还是要解释的清楚.
    sadfQED2
        33
    sadfQED2  
       2020-01-10 13:37:38 +08:00 via Android
    @fyxtc 同感比喻没啥用,特别是瞎比喻的
    night277278
        34
    night277278  
    OP
       2020-01-10 14:13:23 +08:00
    @houzhimeng 这篇文章刚好昨天 /前天看到 hhh,虽然看的是中文版
    houzhimeng
        35
    houzhimeng  
       2020-01-10 14:21:21 +08:00
    @night277278 #34 嗯,好早之前就被翻译了,我觉得写的挺好
    Raymon111111
        36
    Raymon111111  
       2020-01-10 14:59:30 +08:00
    我寻思别的行业的东西普通人也不用懂啊
    xiaoming1992
        37
    xiaoming1992  
       2020-01-10 15:04:24 +08:00
    题主应该是想跟妹子撩骚无从下手吧?
    ipwx
        38
    ipwx  
       2020-01-10 15:05:20 +08:00
    @fyxtc 比喻很多情况下,概念上是有偏差的。你让人用错误的概念去理解一个东西,后续纠正就困难了。
    cigarzh
        39
    cigarzh  
       2020-01-10 15:05:46 +08:00
    源码丢给他,让他哪里不懂问哪里
    darmau
        40
    darmau  
       2020-01-10 15:06:11 +08:00 via iPhone
    @zmqking 量子物理就不行

    数学专业的所有内容都不行

    其实啥学科到研究生阶段已经不是外行能立刻掌握的了
    zmqking
        41
    zmqking  
       2020-01-10 15:17:49 +08:00
    @darmau 说到底还是因为人类对量子不够充分了解,我觉得!
    dbj1991
        42
    dbj1991  
       2020-01-10 15:31:34 +08:00   1
    @houzhimeng _iter_将容器转为迭代器,_next_ 才是迭代器需要实现的方法
    LancerEvo
        43
    LancerEvo  
       2020-01-10 16:42:28 +08:00
    普通人不需要知道这个
    程序员不知道这个也不是不可以
    hikarugo
        44
    hikarugo  
       2020-01-10 17:52:05 +08:00
    @ipwx 害,这是人的问题,不能说有的人用锤子不好,所以锤子没用啊
    okwork
        45
    okwork  
       2020-01-10 18:44:46 +08:00
    @zmqking 老子把复杂世界讲的很简单了:道生一... 简单到理解不了
    necomancer
        46
    necomancer  
       2020-01-10 18:59:43 +08:00
    性感(划掉)荷官在线发牌
    遗传
    good1uck
        47
    good1uck  
       2020-01-10 21:09:34 +08:00
    如何让普通人明白现在只要用百度就可以学会大部分概念?
    ihciah
        48
    ihciah  
       2020-01-10 21:52:23 +08:00 via iPhone
    画图+举例子
    namaketa
        49
    namaketa  
       2020-01-11 00:13:34 +08:00
    这个问题就像教非洲孩子雪是什么一样。
    你当然可以背一段定义,也可以用各种他们熟知的东西去比喻。
    但只要接触不到真实的代码和项目,怎么讲都是雾里看花,水中看月。
    p3n6
        50
    p3n6  
       2020-01-11 00:17:19 +08:00
    程序员也是普通人
    xifangczy
        51
    xifangczy  
       2020-01-11 00:42:06 +08:00
    这三个词语本身已经非常贴切的形容了。如果还是不懂那就上代码吧。
    daimubai
        52
    daimubai  
       2020-01-11 07:33:18 +08:00 via iPhone
    楼主说:其实是我想知道……我就是那个普通人
    farverfull
        53
    farverfull  
       2020-01-11 08:30:37 +08:00 via Android
    google 能查到的东西,统一不解释。动个手指头这么难?
    hbl
        54
    hbl  
       2020-01-11 09:23:33 +08:00 via iPhone
    用到的时候:一个一个拿,一个一个造。 继承, 动物是父类,人继承了动物这个类。人有动物的各种功能,但是跟动物下面的其他种类可能有差别。
    zmqking
        55
    zmqking  
       2020-01-11 10:28:13 +08:00
    @okwork 说明很多世人没看透嘛,阅历不够深。不能领悟到真正的内涵!还是了解不够。。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2676 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 09:12 PVG 17:12 LAX 01:12 JFK 04:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86