函数名的本质和闭包

函数名的本质:

  函数可以作为容器中一项

  函数名可以赋值

  可以作为参数

  可以做返回值

返回值的本质:是返回的值,而不是某个变量

def func():

  a=1

  return  a

b=func()

print(b)

func#函数的内存地址

函数名加括号==调用

函数地址加括号==调用

函数名可以赋值

def  f():

  print(123)

f()

a=b=f

f()

a()

b=()

容器类型:列表 元祖 字典 集合

函数可以作为容器类型中的一项,可以做字典的keys

def f1():

  print(‘哇哈哈‘)

def f2():

  print(‘qq星‘)

函数名可以作为函数的参数

def login():

  print(‘欢迎登陆‘)

def index(auth):

  auth()

  print(‘欢迎来到首页‘)

index(login)

函数名可以作为函数的返回值

def login_failed():

  print(‘登录失败‘)

def index():

  print(‘欢迎来到首页‘)

def login(usr,pwd):

  if  usr == ‘alex‘  and  pwd ==‘sb‘

    return  index

  else:

    return login_failed

res_func = login(‘alex‘,‘ssb‘)

res_func()

def f():

  pass

f是函数名

f()是函数调用

f()得到的结果是返回值

闭包

内部函数使用了外部函数的变量,内部函数就是一个闭包

def outer(*args):

  num=0

  for i in args:

    num+=i

  def  inner()

    return  num

   return inner

inner=outer(1,2,3,4,5)

inner()s

inner就是一个闭包函数

闭包的应用

缓存

装饰器

  

原文地址:https://www.cnblogs.com/songzangzhe/p/9917550.html

时间: 2024-11-07 21:08:49

函数名的本质和闭包的相关文章

DAY11 函数进阶(函数名的本质,闭包,迭代器)

函数名的本质与一级对象: 1.函数名表示函数的内存地址. 2.函数名可以赋值给变量,可以作为容器数据类型的元素. 3.函数名可以作为参数传递给函数. 4.函数名可以作为函数的返回值. #一. 函数名表示函数的内存地址 def func(): print(111) print(func) >>><function func at 0x00000199DFD22F28> #二.函数名可以赋值给变量,可以作为容器数据类型的元素. def func(): print(111) f =

函数名的本质

先来看一段函数 def alex(): prinr(123) def func()" return alex ret = func() print(ret()) 这段函数执行后的结果是这样的 123 None 这样就看结果得出来,函数名是可以当作变量使用的. 既然可以当作变量使用,那么它一定具备变量的部分特性,. 函数的本质 一,函数名是一个函数的内存地址 二,可以赋值,可以作为其他列表等容器类的元素. 三,可以作为函数的参数,返回值. 当然了,函数名的命名规则和变量名一样 一,以数字,字母,下

python函数名的应用、闭包和迭代器

一.函数名的应用(第一类对象) 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数变量. 1.函数名的内存地址 def func(): print("哈哈") print(func) #<function func at 0x000002750A7998C8> 2.函数名可以赋值给其他变量 def func(): print("哈哈") print(func) a = func #把函数当成一个变量赋值给另一个变量 a() #函数调用 fun

python入门基础-三元表达式、命名空间、作用域、函数名本质、闭包

1.三元表达式(三目运算式) #1 三元表达式(三目运算法) #格式为: 为真时的结果 if 判定条件 else 为假时的结果 #另外三元表达式只适合较为简洁的条件判定,较为复杂的判定建议不要用这种方式写代码,因为比较让他人难以理解. a = 10 b = 15 compare = a if a > b else b #谁大返回谁 print(compare) 2.命名空间(namespace) #2 命名空间(namespace) #命名空间是名称和对象的印象,也可以将命名空间理解成一个字典,

python开发函数进阶:命名空间,作用域,函数的本质,闭包,内置方法(globales)

一,命名空间 #局部命名空间#全局命名空间#内置命名空间 #三者的顺序#加载顺序 硬盘上--内存里#内置-->全局(从上到下顺序加载进来的)-->局部(调用的时候加载) 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 #全局命名空间 5 a = 5 6 b = 8 7 #局部命名空间(函数) 8 def my_max(): 9 c = a if a > b else b 10 return c 11 m = my_max() 12 pr

python 函数名 、闭包 装饰器 day13

1,函数名的使用. 函数名是函数的名字,本质就是变量,特殊的变量.函数名()加括号就是执行此函数. 1,单独打印函数名就是此函数的内存地址. def func1(): print(555) print(func1) # <function func1 at 0x0000027B7CF1A048> 2,函数名的赋值 def func(): print(666) f = func print(f()) 3,函数名可以作为容器类数据的元素. def f1(): print(111) def f2()

函数名、闭包、装饰器

1, 函数名的内存地址,print(func) 2, 函数名可以赋值给其他变量 3, 函数名可以当做容器类的元素 4, 函数名可以当做函数的参数. 5, 函数名可以当做函数的返回值. 学名:第一对象 函数名的内存地址:def func(): print(555) print(func) # <function func at 0x00000000003E1E18> 结果: def func1(): print(111) f = func1 f() # func() def func(): pr

函数名,闭包,装饰器

#输出的__closure__有cell元素 :是闭包函数 def func(): name = 'eva' def inner(): print(name) print(inner.__closure__) return inner f = func() f() #输出的__closure__为None :不是闭包函数 name = 'egon' def func2(): def inner(): print(name) print(inner.__closure__) return inne

第十一天 函数名的使用以及第一类对象, 闭包, 迭代器

本节主要内容: 1.函数名的使用以及第一类对象 2.闭包 3.迭代器 一.函数名的运用 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数的变量 1.函数名的内存地址: 2.函数名可以赋值给其他变量 3.函数名可以当作容器类的元素(作为list元素) 4.函数名可以当作函数的 5.函数名可以作为函数的返回值 二.闭包 什么是闭包: 闭包就是内层函数, 对外层函数(非全局)的变量的引用. 叫闭包 在内存函数中调用了外层函数的变量,叫闭包.可以让一个局部变量常驻内存 使用__closur