在python 3.8中实现namedexpressions到旧版本python的非常小的库。

namedassignments的Python项目详细描述


名称分配

named assignments是我为自己开发的一个库,用于在python<;=3.7项目中使用命名赋值。

什么是指定作业?

实际上我甚至不知道该怎么称呼他们,但这是我为他们找到的最好的名字。如果您已经阅读了PEP 572,那么python 3.8中会出现一个名为命名表达式的新操作符,它可以帮助您编写更干净、更短的代码。

但是怎么做呢?

对于原始示例,您可以直接检查PEP 572 examples,但如果您正在查找此库,则可能没有使用Python3.8,因此请留在这里继续阅读。

  • 缓存计算开销较大的计算(这绝对是计算开销较大的一个坏例子,但让我们像这样行事)

    旧方式:
    # Makes two addition every timestrange_list=[[x+1,x/(x+1)]forxinrange(5)]
    改进:
    # Makes only one addition every timestrange_list=[[N('y',lambda:x+1),x/N.y]forxinrange(5)]
  • while循环中的用法

    旧方式:
    # conn is a accepted socket connectionwhileTrue:data=conn.recv(1024)ifnotdata:breakconn.sendall(data)
    改进:
    # conn is a accepted socket connectionwhileN('data',conn.recv,1024):conn.sendall(N.data)

用法

由于局限性,使用方法并不像原来那样干净,但它是我发现的最干净的方法。

fromnamedassignmentsimportNamedAssignmentsasNN(variable_name,function,*args,**kwargs)

安装

库在pypi上可用,因此只需运行

pip install namedassignments

API

因为整个代码只有5行,所以没有太多。library使用python的魔术方法__new__返回函数返回的内容这是library在后台所做的一切。

  • __new__参数:
    • variable_name:检索数据时要使用的变量名。(字符串)(必需)
    • function:要执行的函数。(功能)(必需)
    • *args:要传递函数的参数。(列表)(可选)
    • **kwargs:要传递函数的关键字参数。(dict)(可选)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
从FXML转换为JAVA时,不会加载javafx映像   泛型Java模板调用运行时推断   javascript为什么我的活动没有响应我在样式文件中所做的更改?   如何在HttpClient(java、apache)中自动重定向   java CSV到H2字符编码不匹配   在Java中使用BorderLayout按比例调整用户界面大小   Java中的重定向异常   java RecyclerView搜索过滤器仅过滤一个值   java标准api multiselect与count和distinct不起作用   java为什么我在Solr上做的每一个查询都会占用我10s MB的堆内存?   java如何使用方法解决:锁定帐户三次后?   java如何实现睡眠以显示图像的幻灯片   在Java中,按对象参数对映射<对象,列表<对象>>进行排序   java无法从密钥库读取密钥   java试图将水平recycleview嵌套到垂直recycleview中   认识C++对Web应用开发的重要性   使用共享对象实例化多个Runnable的java含义?   javabeans何时使用JavaBean?