您的位置:首页 > 其它

Pyhton 3.6学习--基础4:Lambda表达式,文档字符串,功能注释,Intermezzo:编码风格

2018-07-30 21:45 218 查看

Lambda表达式

可以使用

lambda
关键字创建小的匿名函数。此函数返回其两个参数的总和:。Lambda函数可以在需要函数对象的任何地方使用。它们在语法上限于单个表达式。从语义上讲,它们只是正常函数定义的语法糖。与嵌套函数定义一样,lambda函数可以引用包含范围的变量:
lambda a, b: a+b

[code]>>> def make_incrementor(n):
...     return lambda x: x + n
...
>>> f = make_incrementor(42)
>>> f(0)
42
>>> f(1)
43

上面的示例使用lambda表达式返回一个函数。另一个用途是传递一个小函数作为参数:

[code]>>> pairs = [(1, 'one'), (2, 'two'), (3, 'three'), (4, 'four')]
>>> pairs.sort(key=lambda pair: pair[1])
>>> pairs
[(4, 'four'), (1, 'one'), (3, 'three'), (2, 'two')]

文档字符串

以下是有关文档字符串的内容和格式的一些约定。

第一行应始终是对象目的的简短概述。为简洁起见,它不应显式声明对象的名称或类型,因为这些可通过其他方式获得(除非名称恰好是描述函数操作的动词)。该行应以大写字母开头,以句点结尾。

如果文档字符串中有更多行,则第二行应为空白,从而在视觉上将摘要与其余描述分开。以下行应该是一个或多个段落,描述对象的调用约定,其副作用等。

Python解析器不会从Python中删除多行字符串文字的缩进,因此处理文档的工具必须在需要时删除缩进。这是使用以下约定完成的。字符串第一行之后的第一个非空行 确定整个文档字符串的缩进量。(我们不能使用第一行,因为它通常与字符串的开头引号相邻,因此它的缩进在字符串文字中不明显。)然后从字符串的所有行的开头剥离与该缩进“等效”的空格。 。缩进的行不应该出现,但是如果它们出现,则应该剥离它们的所有前导空格。应在扩展标签后测试空白的等效性(通常为8个空格)。

以下是多行文档字符串的示例:

[code]>>> def my_function():
...     """Do nothing, but document it.
...
...     No, really, it doesn't do anything.
...     """
...     pass
...
>>> print(my_function.__doc__)
Do nothing, but document it.

No, really, it doesn't do anything.

 

功能注释

注释

__annotations__
作为字典存储在函数的属性中,对函数的任何其他部分没有影响。参数注释由参数名称后面的冒号定义,后跟一个表达式,用于评估注释的值。返回注释由
->
参数列表和表示
def
语句结尾的冒号之间的文字,后跟表达式定义。以下示例具有位置参数,关键字参数和注释的返回值:

[code]>>> def f(ham: str, eggs: str = 'eggs') -> str:
...     print("Annotations:", f.__annotations__)
...     print("Arguments:", ham, eggs)
...     return ham + ' and ' + eggs
...
>>> f('spam')
Annotations: {'ham': <class 'str'>, 'return': <class 'str'>, 'eggs': <class 'str'>}
Arguments: spam eggs
'spam and eggs'

 

Intermezzo:编码风格

现在您要编写更长,更复杂的Python,现在是讨论编码风格的好时机。大多数语言都可以用不同的风格编写(或更简洁,格式化); 有些比其他人更具可读性。让其他人轻松阅读您的代码总是一个好主意,采用一种好的编码风格对此有很大帮助。

对于Python, PEP 8已成为大多数项目坚持的风格指南; 它促进了一种非常易读且令人赏心悦目的编码风格。每个Python开发人员都应该在某个时候阅读它; 以下是为您提取的最重要的要点:

  • 使用4空格缩进,没有标签。

    4个空格是小压痕(允许更大的嵌套深度)和大压痕(更容易阅读)之间的良好折衷。标签引入混淆,最好省略。

  • 换行,使其不超过79个字符。

    这有助于用户使用小型显示器,并且可以在较大的显示器上并排放置多个代码文件。

  • 使用空行分隔函数和类,以及函数内的较大代码块。

  • 如果可能,将评论放在他们自己的一行上。

  • 使用docstrings。

  • 在操作符周围和逗号后面使用空格,但不能直接在包围结构中使用:。

    a = f(1, 2) + g(3, 4)

  • 一致地命名您的类和函数; 约定 

    CamelCase
    用于类和
    lower_case_with_underscores
    函数和方法。始终使用
    self
    第一个方法参数的名称(有关类和方法的更多信息,请参阅类的初步查看)。

  • 如果您的代码旨在用于国际环境,请不要使用花哨的编码。Python的默认值,UTF-8甚至纯ASCII在任何情况下都能最好地工作。

  • 同样,如果只有最轻微的机会,说不同语言的人会阅读或维护代码,请不要在标识符中使用非ASCII字符。

 

 

 

 

 

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐