Python 函数返回的良好约定
我有一个对象实例,需要将其与同一类的实例列表进行比较,以找出具有相同属性的实例。Python 函数返回的良好约定,python,Python,我有一个对象实例,需要将其与同一类的实例列表进行比较,以找出具有相同属性的实例。 还提供了用于比较的属性,并在每次调用时动态加载这些属性。 最后,我需要返回成功的实例(如果有)、用于比较的属性或失败实例的列表以及不同的字段(如果没有匹配) def函数(tomatch,prospects列表): 属性= 对于项目列表中的l: failues=list() 不匹配=匹配(tomatch,l,attrs)#返回此元素的任何不匹配字段 如果不匹配: 返回(左,属性) 其他: firries.extend
还提供了用于比较的属性,并在每次调用时动态加载这些属性。
最后,我需要返回成功的实例(如果有)、用于比较的属性或失败实例的列表以及不同的字段(如果没有匹配)
def函数(tomatch,prospects列表):
属性=
对于项目列表中的l:
failues=list()
不匹配=匹配(tomatch,l,attrs)#返回此元素的任何不匹配字段
如果不匹配:
返回(左,属性)
其他:
firries.extend(dict(l.name(),不匹配))
返回(失败、属性)
对于函数返回值在不同情况下的含义不同,我感到不舒服。围绕这一点,推荐的惯例是什么?
此外,是否有一种方法可以将其纳入理解/映射形式中?尽管返回值很难看。当您比较同一类的两个对象时,第一个技巧是实现您自己的功能
第二,让比较的结果留给调用方。函数应该简单地说明对象是否相等,最好的方法是返回
True
或False
正确的代码缩进。
def func(tomatch,listofprospects):
attrs = <load dynamically>
for l in listofprospects:
failues=list()
mismatch=match(tomatch,l,attrs)#returns any mismatched fields for this element
if not mismatch:
return (l,attrs)
else:
filures.extend(dict(l.name(),mismatch))
return(failures,attrs)