资讯专栏INFORMATION COLUMN

Python中鲜为人知的特性(一)

firim / 2069人阅读

摘要:问题中鲜为人知的特性一讨论函数参数链式比较操作符注意函数的默认参数更安全的做法带关键字的格式化语法的特殊方法当查找不到的时候,会执行这个方法。

问题

Python中鲜为人知的特性(一)

讨论

函数参数unpack

def foo(x, y):
    print x, y

alist = [1, 2]
adict = {"x": 1, "y": 2}

foo(*alist)  # 1, 2
foo(**adict)  # 1, 2

链式比较操作符

>>> x = 3
>>> 1 < x < 5
True
>>> 4 > x >=3
True

注意函数的默认参数

>>> def foo(x=[]):
...     x.append(1)
...     print x
...
>>> foo()
[1]
>>> foo()
[1, 1]

更安全的做法:

>>> def foo(x=None):
...     if x is None:
...         x = []
...     x.append(1)
...     print x
...
>>> foo()
[1]
>>> foo()
[1]
>>>

带关键字的格式化

>>> print "Hello {name} !".format(name="James")
Hello James !

for...else 语法

>>> for i in (1, 3, 5):
...     if i % 2 == 0:
...         break
... else:
...     print "var i is always an odd"
...
var i is always an odd
>>>

dict 的特殊方法__missing__

当查找不到 key 的时候,会执行这个方法。

>>> class Dict(dict):
...   def __missing__(self, key):
...     self[key] = []
...     return self[key]
...
>>> dct = Dict()
>>> dct["foo"].append(1)
>>> dct["foo"].append(2)
>>> dct["foo"]
[1, 2]

切片操作的步长参数

>>> a = [1, 2, 3, 4, 5]
>>> a[::2]
[1, 3, 5]
>>> a[::-1]
[5, 4, 3, 2, 1]

Python解释器中的”_”

_ 即Python解释器上一次返回的值

>>> range(4)
[0, 1, 2, 3]
>>> _
[0, 1, 2, 3]

Python之禅

>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren"t special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you"re Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it"s a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let"s do more of those!
来源

PyZh

关注

欢迎关注我的微信公众号:python每日一练

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/41663.html

相关文章

  • 详解Python元组三个不常用特性

      Python元素的内容还是比较的复杂的,里面包含有很多的不同特性,不同特性之间,其用法也是不一样的。那么,其中它的三个不同特性之间,里面的内容是什么呢?下面就给大家详细的解答下。  1.引言  元组是Python中一种重要的内置数据类型。与列表一样,我们经常使用元组将多个对象保存为相应的数据容器。然而,与列表不同的是元组的不变性——一个不可改变的数据序列。  2.举个例子  下面的代码片段向我...

    89542767 评论0 收藏0
  • 鲜为人知JavaScript功能

    摘要:有着一堆神秘的语法和过时的功能。我试图列出一些鲜为人知的特性。虽然它们很酷,但毕竟是鲜为人知的特性,你的同事可能会看不懂。类似这样使用的话会始终保持返回正确的。 By Viral Shah | Nov 26, 2018 原文 js一门很容易入门但是很难精通的语言。我很认同这句话。这是因为js是一门古老的语言同时也是一门很灵活的语言。有着一堆神秘的语法和过时的功能。我已经使用js很多年了...

    luckyw 评论0 收藏0
  • OMG,这些鲜为人知JavaScript 特性

    摘要:文中的我指原文作者通常被认为是最容易入门的语言,也是最难掌握的语言,我完全同意。这是因为是一种非常古老且非常灵活的语言,它有着了神秘的语法和过时的特性。虽然这些特性可能不太为人所知,但它们仍然是众所周知的。 文中的 我 指原文作者 javaScript 通常被认为是最容易入门的语言,也是最难掌握的语言,我完全同意。这是因为 JavaScript 是一种非常古老且非常灵活的语言,它有着了...

    zebrayoung 评论0 收藏0
  • OMG,这些鲜为人知JavaScript 特性

    摘要:文中的我指原文作者通常被认为是最容易入门的语言,也是最难掌握的语言,我完全同意。这是因为是一种非常古老且非常灵活的语言,它有着了神秘的语法和过时的特性。虽然这些特性可能不太为人所知,但它们仍然是众所周知的。 文中的 我 指原文作者 javaScript 通常被认为是最容易入门的语言,也是最难掌握的语言,我完全同意。这是因为 JavaScript 是一种非常古老且非常灵活的语言,它有着了...

    Jason 评论0 收藏0

发表评论

0条评论

firim

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<