给同事讲 Python 的高级用法, 有没有提纲什么的... - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
chaleaoch
V2EX    Python

给同事讲 Python 的高级用法, 有没有提纲什么的...

  •  
  •   chaleaoch 2021-05-18 15:56:39 +08:00 4396 次点击
    这是一个创建于 1610 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有经验的同事,譬如 Java 背景的或者刚毕业的.

    只讲接地气的实用的高级用法.

    奇技淫巧不要.

    大佬们集思广益

    谢谢啦.......

    只需要列提纲即可或者大佬们想到某一个点也可以.

    26 条回复    2021-05-19 16:12:32 +08:00
    chaleaoch
        1
    chaleaoch  
    OP
       2021-05-18 15:58:37 +08:00
    - 装饰器套三层
    - 元类啊
    - property
    - 描述符
    - mixin
    - typehint
    - asyncio
    larsenlouis
        2
    larsenlouis  
       2021-05-18 16:27:23 +08:00
    Python Cookbook 目录里挑
    abersheeran
        3
    abersheeran  
       2021-05-18 16:32:57 +08:00   2
    没必要。如果你的同事 Java 写的不错,那他不需要知道任何 Python 特性也可以写出漂亮的代码。

    你给他讲讲 type hint 和 asyncio 就行了,前者可以让他感觉自己还在写静态语言,后者能让 Python 稍微做一些 IO 密集的工作。别的没必要。
    fwin3000cannada
        4
    fwin3000cannada  
       2021-05-18 16:35:56 +08:00
    github 搜 python_interview_question
    so1n
        5
    so1n  
       2021-05-18 16:35:58 +08:00
    说下一些语法, 以及 Python 是怎么"实现"Java 的反射,注解,范型 以及没有各种 spring-xxxx
    lerry
        6
    lerry  
       2021-05-18 16:41:40 +08:00   2
    当然是 Python 之父廖雪峰的 Python 教程啦..
    zhoudaiyu
        7
    zhoudaiyu  
    PRO
       2021-05-18 17:15:47 +08:00
    @lerry #6 那 C 语言之父是谭浩强吗
    zhoudaiyu
        8
    zhoudaiyu  
    PRO
       2021-05-18 17:16:12 +08:00
    Fluent Python 里面的讲讲就够了
    lvgsnm
        9
    lvgsnm  
       2021-05-18 17:17:39 +08:00 via iPhone
    @lerry java 之父,马士兵
    LeeReamond
        10
    LeeReamond  
       2021-05-18 20:05:38 +08:00   2
    python 为什么要追求高级用法?这与 python 哲学不合,理想的 python 是你不需要教给他们任何东西,大家看半小时就都能写出所有人都能看懂且简洁的代码。

    特殊应用是为了特定场景存在的,像原类之于 ORM,显然如果你不需要处理 orm 框架那没必要折腾原类
    chaleaoch
        11
    chaleaoch  
    OP
       2021-05-18 20:16:07 +08:00
    @LeeReamond 施主没写过插件吧...
    shawnsh
        12
    shawnsh  
       2021-05-18 20:52:51 +08:00 via Android
    map reduce filter 函数组合来一套
    leven87
        13
    leven87  
       2021-05-18 21:17:20 +08:00
    谁能给我说说高级语法的意义?
    DeleteZN
        14
    DeleteZN  
       2021-05-18 21:20:05 +08:00
    推荐一本书,《流畅的 Python 》,上面也有 Python 垃圾回收,金字塔模型,GIL 等等。我觉得还是很棒的~
    itechify
        15
    itechify  
    PRO
       2021-05-18 21:42:31 +08:00 via Android
    @leven87 用法不是语法叭
    billlee
        16
    billlee  
       2021-05-18 22:07:47 +08:00
    * 函数对象,decorator
    * iterator, generator, list comprehension
    iyaozhen
        17
    iyaozhen  
       2021-05-18 22:16:45 +08:00
    楼上说的 type hint 可以说说,纠正下观念,若类型不是无类型

    asyncio 协程

    还有相对 java 这些,比如 with open 读文件,就比 java 简洁多了
    Hieast
        18
    Hieast  
       2021-05-18 23:35:36 +08:00
    把内建方法和标准库简单过一遍就够了
    009694
        19
    009694  
       2021-05-19 00:43:04 +08:00 via Android
    纠正一下楼上 python 是强类型 不是弱类型
    786375312123
        20
    786375312123  
       2021-05-19 02:25:38 +08:00
    讲讲 collections 和 itertools
    zone10
        21
    zone10  
       2021-05-19 09:52:42 +08:00   2
    大部分非 Python 程序员都是把 Python 当成跨平台的 shell 在用, 没必要给他们讲高级用法, 有那个精力还不如给他讲讲 awesome-python, 实现哪个功能要用哪个库, 面向 PyPI 和 Github 编程
    WilliamYang
        22
    WilliamYang  
       2021-05-19 09:56:19 +08:00
    每次面试别人,听到说 Python 是弱类型,我都忍不住要纠正下
    chaleaoch
        23
    chaleaoch  
    OP
       2021-05-19 10:05:37 +08:00
    @leven87 django_filter 中的 drf_filter 会根据 request.parameters 自动过滤数据库中的数据将数据返回给前端.
    但是 我们有一个需求, 数据源不是来自于数据库, 但是我想利用 django filter 中的参数校验. 并且支持自动过滤的功能.让业务层无感知.

    django filter 用到了 metaclass.
    如果你不懂,就看不懂 django filter 的代码, 也就没有办法实现这个功能.
    clearT
        24
    clearT  
       2021-05-19 11:12:15 +08:00
    @LeeReamond 我觉得这对于 python 这类这么动态的语言太难了,干一件事情,十个人可能有二十种写法,黑魔法太多,碰到炫技的就更别提了,你这种要求更适和 go 、java 这种
    charlestang
        25
    charlestang  
       2021-05-19 14:39:21 +08:00
    @DeleteZN 我也觉得《流畅的 Python 》很不错的。
    LeeReamond
        26
    LeeReamond  
       2021-05-19 16:12:32 +08:00 via Android
    @clearT 不难,这要求的是比起静态类型更多的是语言本身的描述能力,要更加接近自然语言。动态并不是问题,不使用炫技写法可以用编码规范要求
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     944 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 19:50 PVG 03:50 LAX 12:50 JFK 15:50
    Do have faith in what you're doing.
    ubao 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