函数返回值

def test1():
pass

def test2():
return 0

def test3():
return 0,'hello',['a','b','c'],{'name':'alex'}

x=test1()
y=test2()
z=test3()
print('%s ' %x , '%s '%y,z)
可以有0返回值,一个返回值,多个返回值;其实都是一个返回值;0个返回值返回的是一个None,一个返回值返回的是一个object,多个返回值返回的是一个元组;
----------------------------------------------------------------------------------------------------------------------------------------
返回lambda函数:
class Student(object):
    def __getattr__(self, attr):
        if attr=='age':
            return lambda: 25  #返回的是函数的内存地址
s = Student()
print(s.age() ) #打印25

与下面这个代码一样
class Student(object):
def __getattr__(self, attr):
if attr=='age':
def a(): return 25
return a  #返回的是函数的内存地址
s = Student()
print(s.age() ) #打印25


下面这个__getattr__ 的返回值与上面的不一样:
class Student(object):
def __getattr__(self, attr):
if attr=='age':
return (lambda: 25)()  #返回的是函数执行后的结果
s = Student()
print(s.age ) #打印25






原文地址:https://www.cnblogs.com/lighthouse/p/9414152.html