1. 函数名的运用

    你们说一下,按照你们的理解,函数名是什么?

    函数名的定义和变量的定义几乎一致,在变量的角度,函数名其实就是一个变量,具有变量的功能:可以赋值;但是作为函数名他也有特殊的功能就是加上()就会执行对应的函数,所以我们可以把函数名当做一个特殊的变量,那么接下来,我们就来研究一下这个特殊的变量。

1.1 函数的内存地址

def func():       ​ 
    print("呵呵")
​print(func)结果: <function func at 0x1101e4ea0>

    通过上面代码可以我们知道,函数名指向的是这个函数的内存地址,其实深一步理解可得知,与其说函数名()可以执行这个函数,不如说是函数的内存地址()才是执行这个函数的关键,就好比:

a = 1
b = 2
c = a + b
print(c)  # 3

a + b 并不是变量的相加,而是 两个变量指向的int对象的相加。

1.2 函数名可以赋值给其他变量

如果你理解了第一条,那么第二条就更容易的理解了:

def func():        
    ​print("呵呵")    ​
print(func) ​
a = func  # 把函数当成一个变量赋值给另一个变量​
a() # 函数调用 func()

通过变量的赋值,变量a,和变量func都指向的这个函数的内存地址,那么a() 当然可以执行这个函数了。

1.3 函数名可以当做容器类的元素

其实这个也不难理解,函数名就是一个变量,我的变量是可以当做容器类类型的元素的:

a = 1
b = 'alex'
c = '武sir'
l1 = [a, b, c]
for i in l1:
    print(i)
'''
# 结果:
1
alex
武sir
'''

那么函数名也是可以的:

def func1():
    print("in func1: 嘻嘻")
def func2():
    print("in func2: 哈哈")
def func3():
    print("in func3: 咯咯")
def func4():
    print("in func4: 吱吱")
lst = [func1, func2, func3, func4]
for i in lst:
    i()
View Code

相关文章:

  • 2021-07-31
  • 2022-12-23
  • 2021-11-17
  • 2021-12-08
  • 2021-12-14
  • 2021-07-20
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-08-13
  • 2021-06-21
  • 2021-04-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案