V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
night277278
V2EX  ›  程序员

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

  •  1
     
  •   night277278 · 2020-01-10 09:56:04 +08:00 · 6129 次点击
    这是一个创建于 1539 天前的主题,其中的信息可能已经有所发展或是发生改变。
    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
    只讲概念很简单的吧?

    如果是想把各自适用的应用场景讲明白,那就复杂了
    emeab
        17
    emeab  
       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
    whwq2012
        26
    whwq2012  
       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/
    fyxtc
        29
    fyxtc  
       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
    普通人不需要知道这个
    程序员不知道这个也不是不可以
    fyxtc
        44
    fyxtc  
       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   ·   我们的愿景   ·   实用小工具   ·   975 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 20:30 · PVG 04:30 · LAX 13:30 · JFK 16:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.