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 · 3975 次点击
    这是一个创建于 1289 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有经验的同事,譬如 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  
       2021-05-18 17:15:47 +08:00
    @lerry #6 那 C 语言之父是谭浩强吗
    zhoudaiyu
        8
    zhoudaiyu  
       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 等等。我觉得还是很棒的~
    oneisall8955
        15
    oneisall8955  
       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   ·   实用小工具   ·   2803 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 15:18 · PVG 23:18 · LAX 07:18 · JFK 10:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.