Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 函数返回的良好约定_Python - Fatal编程技术网

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)