推荐学习书目
› 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
cbsw
V2EX  ›  Python

才加插值语法糖, Python 现在又要加问号语法糖了

  •  
  •   cbsw ·
    dengshuan · Sep 20, 2015 · 7197 views
    This topic created in 4072 days ago, the information mentioned may be changed or developed.

    PEP0505

    >>> title = 'My Title'
    >>> title ?? 'Default Title'
    'My Title'
    >>> title = None
    >>> title ?? 'Default Title'
    'Default Title'
    

    另外这是之前关于插值糖的讨论 http://v2ex.com/t/211863

    33 replies  •  2015-09-21 16:05:54 +08:00
    zhicheng
    zhicheng
    Sep 20, 2015
    1
    已经不看好 Python 3 的发展了。
    Septembers
    Septembers
    Sep 20, 2015 via Android
    2
    其实"??"换成"or"也是可以的
    dingyaguang117
    dingyaguang117
    Sep 20, 2015 via iPhone
    3
    一直用 or
    xierch
    xierch
    Sep 20, 2015
    4
    和 or 不一样, or 只要是 false 的行,?? 要求 None
    aec4d
    aec4d
    Sep 20, 2015
    5
    看原文和 or 不一样 只针对 None 值 黑魔法的是可以针对成员访问和索引访问加?不存在就返回 None
    黑魔法越来越多
    我等着用 python4
    Hyperion
    Hyperion
    Sep 20, 2015 via Android
    6
    py3lint 指日可待
    introom
    introom
    Sep 20, 2015
    7
    这种??太丑,必须被 reject
    otakustay
    otakustay
    Sep 20, 2015
    8
    这不是 C#的某语法吗, C#程序员表示用得很爽啊
    codeforlife
    codeforlife
    Sep 20, 2015
    9
    没觉得有什么问题啊
    phx13ye
    phx13ye
    Sep 20, 2015
    10
    防火防盗防 NONE ,弱弱的问一下: None 这个东西既然大家都在防一开始为什么要造出来啊
    fengdra
    fengdra
    Sep 20, 2015
    11
    not defined 行不行
    Sin
    Sin
    Sep 20, 2015
    12
    我大 C#威武
    ethego
    ethego
    Sep 20, 2015
    13
    @zhicheng py3 所有的特性都是在进步,解决了非常多 py2 的遗留问题,为什么不看好?
    firemiles
    firemiles
    Sep 20, 2015
    14
    我还以为是要加 ruby 里最爽的的 has? replace! 这样的语法糖,这两个语法糖真的很方便, python ??的语法糖用一个函数代替好了,有必要用语法糖吗?@ethego
    fy
    fy
    Sep 20, 2015
    15
    太丑,我觉得?=都比??好
    gaitana
    gaitana
    Sep 20, 2015
    16
    @fy 很多乱码就是 ??
    liuxu
    liuxu
    Sep 20, 2015
    17
    看着逻辑像 linux 脚本。。
    ethego
    ethego
    Sep 20, 2015
    18
    @firemiles 语法糖这种东西本来就是不想用就不用好了,非逼着用语法糖啊? py3 里解决了一些细小的遗留问题,比方说 None 改成关键字, print 改成函数,默认 utf8 编码,这些边边角角的细节修改都是会经常用到的好特性。再就是 map/reduce/filter 这些函数都只接受生成器返回生成器了,非常棒地解决了递归的问题。这些特性让我不能不爱上 py3
    akagi
    akagi
    Sep 20, 2015
    19
    纠结语法糖不如用 Perl, 想怎么写,就能怎么写,别人还不敢说你的不是 :)
    est
    est
    Sep 20, 2015
    20
    为毛不学习 ruby 的 ||= 。还可以一句话写 cache 。
    firemiles
    firemiles
    Sep 20, 2015
    21
    @ethego 首先我也很喜欢 python3 ,因为不用纠结编码问题。但是这个语法糖加多了虽然自己不用,可是别人会用啊,看代码会比较麻烦。还有 python3 把 print 变成函数就是减轻语法负担,统一代码书写形式,但却又加上这种并不重要的语法糖,增加语法复杂度,把这个做成函数放库里不好吗。还有 ruby 的 replace! 之类的 api 真的很好,什么时候 python 能加上啊。
    aisk
    aisk
    Sep 20, 2015
    22
    @introom 觉得太丑一般都是因为自己那点狭隘的审美观。
    zonghua
    zonghua
    Sep 20, 2015
    23
    语法糖堪比 matlab
    wizardforcel
    wizardforcel
    Sep 20, 2015
    24
    明显是跟 c#学的。

    话说怎么不把 ruby 的<=>也学来
    otakustay
    otakustay
    Sep 20, 2015
    25
    C#好像快要出一个叫“不能为 null 的类型”的类型了,其它没这特性的语言也可以参考
    introom
    introom
    Sep 20, 2015
    26
    @aisk 这都不丑,这是有多包容和博爱,,,
    linchunai1212
    linchunai1212
    Sep 20, 2015
    27
    3.5 还加入 @ 感觉丑
    latyas
    latyas
    Sep 20, 2015
    28
    不就是 or 么
    poke707
    poke707
    Sep 20, 2015 via Android
    29
    这个语法糖是不错,但"??"这个写法真的觉得风格不一致
    minsheng
    minsheng
    Sep 21, 2015
    30
    这么麻烦真是无聊,学习 Swift 来个 sum type 什么都好了。

    (我知道 Swift 抄 Rust 抄 Haskell 抄 ML )
    ophunter
    ophunter
    Sep 21, 2015
    31
    C# 威武,从小弟变成了领导者
    julyclyde
    julyclyde
    Sep 21, 2015
    32
    @phx13ye 值 None 总比变量名字不存在要强点儿
    glasslion
    glasslion
    Sep 21, 2015
    33
    ??这个操作符有点鸡肋, 但这个 PEP 还打算引入涉及成员访问的操作符, Coffee script 里用起来会很爽啊

    Null-Aware Member Access Operator

    >>> title?.upper ()
    None

    Null-Aware Index Access Operator
    >>> person?['name']
    None
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4616 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 06:25 · PVG 14:25 · LAX 22:25 · JFK 01:25
    ♥ Do have faith in what you're doing.