我有一连串的功能,全部定义在课程其他地方:

fus(roh(dah(inp)))

其中inp是字典或bool(False).

期望的结果是,如果inp或任何函数评估为False,则False由函数堆返回.

我试图使用三元运算符,但是它们不能正确评估.

def func(inp):

return int(inp['value']) + 1 if inp else False

抛出一个TypeError,bool不可下标,如果i == False,因为inp [‘value’]在条件之前被求值.

我知道我可以明确地做:

def func(inp):

if inp == False:

return False

else:

return inp['value'] + 1

但是有很多功能,这几乎是我代码长度的四倍.它也一次又一次地重写完全相同的代码行,这对我来说这是做错事的方式.

我怀疑有参数的装饰者是答案,但是我玩的越多,我就越不肯定.

def validate_inp(inp):

def decorator(func):

def wrapper(*args):

return func(inp) if inp else False

return wrapper

return decorator

@validate_inp(inp)

def func(inp):

return int(inp['value']) + 1

不幸的是,装饰器调用引发了一个NameError,’inp’没有定义.但我不知道我是否正在使用装饰器,或者装饰器是错误的解决方案.

寻找评论,批评,建议和/或健康检查.

如果你发现这个试图解决你自己的问题?

你可能想要使用空字典而不是布尔值False.道具到@chepner.

在我的应用程序中,使用False是“好的”,没有提供任何优势,并导致一些块状的代码块.

我发现一切都比较简单,使用一个空字典.我正在使用带有装饰器的函数,通过引用dict [‘value’],其中dict为空,捕获引发的KeyError.

python def 参数一直为false_在Python 3中,如果参数为False,则查找惯用的方法来评估为False...相关推荐

  1. python关键字参数必须位于位置参数之前_python函数中的参数(关键字参数,默认参数,位置参数,不定长参数)...

    默认参数:定义函数的时候给定变量一个默认值. def num(age=1): 位置参数:调用函数的时候根据定义函数时的形参位置和实参位置进行引用. 关键字参数:如果定义的函数中含有关键字参数,调用函数 ...

  2. python 定义函数参数的类型_1作为函数声明中的参数类型 - python

    如果在我的示例中需要在Python数组中指定参数类型,则需要编写如下内容: def my_function(param: list): pass 在Swift中,您可以这样指定参数类型: func m ...

  3. python def函数调用内容_基本的python,def函数和文本菜单的调用

    我刚刚浏览了你的代码,虽然你现在可能已经弄明白我想了一些建议可能会帮助你更多地了解python. 首先,样式对于python来说非常重要,它是一种空白语言.该语言还有一些很棒的功能可以缩小代码量,这再 ...

  4. python rfind函数用法_Python语法速查:字符串格式简单处理、子串查找与判断方法?...

    这是一篇python基础知识分享型文章,对学习python感兴趣的朋友们可以仔细看看 字符串常用方法 Python3中,字符串全都用Unicode形式,所以省去了很多以前各种转换与声明的麻烦.字符串属 ...

  5. python怎么选取不连续的列_用pandas中的DataFrame时选取行或列的方法

    如下所示: import numpy as np import pandas as pd from pandas import Sereis, DataFrame ser = Series(np.ar ...

  6. php获取url传递的参数,php解析url并得到url中的参数及获取url参数的四种方式

    下面一段代码是php解析url并得到url中的参数,代码如下所示:<?php $url = "http://www.baidu.com/index.php?m=content& ...

  7. gin ajax 获取请求参数,go的gin框架从请求中获取参数的方法

    前言: go语言的gin框架go里面比较好的一个web框架, github的start数超过了18000.可见此框架的可信度 如何获取请求中的参数 假如有这么一个请求: POST   /post/te ...

  8. c 语言 可变参数前要加形参,C/C++中可变参数的用法详细解析

    可变参数即表示参数个数可以变化,可多可少,也表示参数的类型也可以变化,可以是int,double还可以是char*,类,结构体等等.可变参数是实现printf(),sprintf()等函数的关键之处, ...

  9. vue 点击事件传递多个参数_Vue子组件监听事件中传递参数的方法

    在子组件中,我们可以通过以下方式监听事件: v-on:click="$emit('funcName',a)" 如果需要传多个参数,可以通过以下方式: v-on:click=&quo ...

最新文章

  1. Cacti部署及常用插件安装(2)
  2. 动网 php v1.0 漏洞,动网(DVBBS)PHP论坛preview.php代码执行漏洞
  3. 到现在才理解高斯分布的均值与方差为什么是0和1
  4. leetcode 415. 字符串相加(Java版)
  5. 微信小程序视频弹幕效果
  6. 最长不下降子序列 (O(nlogn)算法)
  7. 数据数据库学通MongoDB——第一天 基础入门
  8. Python字符串isalnum()
  9. 行为型模式17-责任链模式
  10. vmsd文件+服务器,VMWARE ESX中利用SnapShot(快照)文件恢复虚拟机数据
  11. android SDK introduce
  12. 对比分析冯诺依曼结构和哈佛结构。
  13. CTO也糊涂的常用术语:功能模块、业务架构、用户需求、文档
  14. 【谦川解读】如何保证汽车“黑匣子”—EDR数据安全
  15. MySQL组件和数据结构
  16. 基于ssm的BBS社区论坛系统
  17. 趣学PYTHON 第一章python不是大蟒蛇
  18. Hibernate中:cannot simultaneously fetch multiple bags的问题
  19. uefi+gpt安装win10过程踩得坑
  20. 【功能规格说明书】命劫开发

热门文章

  1. Lvs Tun隧道模式配置
  2. Mysql查询结果只有一条的情况下把值赋值给变量,再用if else 流程判断
  3. XDOJ-1073-Nunchakus_求一个集合能否分裂成两个和相等的集合(dp、背包问题)
  4. cf13C Sequence(DP)
  5. spring-boot注解详解(五)
  6. v-slot vue2.6新增指令使用指南
  7. css --- 弹性盒子
  8. Effective_STL 学习笔记(十九) 了解相等和等价的区别
  9. 软件测试工具LoadRunner中如何定义SLA?--转载
  10. springCloud分布式事务实战(九)改造ThemeMicroService 支持分布式事务