python 函数的补充


函数名的应用,第一类对象

函数名可以像变量一样进行使用
1. 赋值
2. 作为list的元素
3. 作为参数
4. 作为返回值



1. 把函数赋值成变量使用
def main():
    print('嗯,这个小伙子挺帅的,打他一顿!')

m1 = main   # 把函数面赋值给变量名,这样也可以使用
m1()      # 直接调用
print(m1,main)   # 函数的内存地址
print(m1.__name__)  # 查看原函数名
# 输出:
# 嗯,这个小伙子挺帅的,打他一顿!
# <function main at 0x000002889B3318C8> <function main at 0x000002889B3318C8>
# main
 
 
2. 作为list的元素进行调用
def m1():
    print('这个美女挺漂亮的,带回去! 哈哈')
def m2():
    print('嗯,这个太帅了,丢进监狱去,')
def m3():
    print('嗯,这个这个小伙子也一样太帅了,交给警察进行枪毙去')
def m4():
    print('算了,想不出什么了.')

lst = [m1,m2,m3,m4]
print(lst)  # 相当于直接打印出这几个函数的内存地址
for i in lst:
    i()     # 执行上面的函数的一种方法

lst = [m1(),m2(),m3(),m4()]
lst  # 这样也是直接执行函数的方法

for i in lst:
    i   # 这样也是直接执行函数的方法
# 注意: 这上面的不要 () 的两种方法,不要一起调用,他调用了列表里面就
# 下面代码调用列表里面就没有值可以调用了
# 输出:
# [<function m1 at 0x00000197FD2A18C8>, <function m2 at 0x00000197FD2A1950>,
# <function m3 at 0x00000197FD33A840>, <function m4 at 0x00000197FD33A9D8>]
# 这个美女挺漂亮的,带回去! 哈哈 # 嗯,这个太帅了,丢进监狱去, # 嗯,这个这个小伙子也一样太帅了,交给警察进行枪毙去 # 算了,想不出什么了. # 这个美女挺漂亮的,带回去! 哈哈 # 嗯,这个太帅了,丢进监狱去, # 嗯,这个这个小伙子也一样太帅了,交给警察进行枪毙去 # 算了,想不出什么了.
 
 
3. 还可以作为函数的参数
def foo(b1):
    b1()


def bar():
    print('调用了bar')

foo(bar)    # 把这个函数作为参数,进行传值,调用这个函数
# 输出:
# 调用了bar
 
 
4. 把函数作为返回值
def function():
    def good():
        print('python不好学啊!要自己努力!')
    print(good) # 打印good函数的内存地址

    return good     # 返回good函数

ret = function()    # 在function函数上,返回good函数
ret()   # 执行good函数
print(ret)  # 可以看出ret是接收的good函数,因为这里的内存地址和good函数的内存地址一样


# 输出:
# <function function.<locals>.good at 0x000001CAFD481950>
# python不好学啊!要自己努力!
# <function function.<locals>.good at 0x000001CAFD481950>
 

# 结合上面总结,函数就是一个变量.

 

 

 

猜你喜欢

转载自www.cnblogs.com/Pengdachui-1/p/11111877.html
今日推荐