函数返回值

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\n' %x , '%s \n'%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






posted @ 2018-08-03 14:57  只记今朝笑  阅读(145)  评论(0编辑  收藏  举报