函数变量

函数名是变量,它在创建函数时绑定一个函数

# 示例:

def f1():

print("f1函数被调用")

f2 = f1 #两个变量同时绑定一个函数

f2() #f1 函数被调用

# 示例2:

def f1():

print("f1")

def f2():

print("f2")

f1,f2 = f2,f1

f1()# f2

一个函数可以作为另一个函数的实参传递

# 示例:

function_as_args.py

def f1():

print("f1被调用")

def f2():

print("f2被调用")

def fx(fn):

print(fn)

fn()#调用函数

fx(f1)

def goodbye(l):

for x in l:

print("再见:",x) 看懂

def operator(fn,l):

fn(l)

operator(goodbye,["Tom","Jerry","Spike"])

练习;

# 看懂下列代码:

def myinput(fn):

L = [1,3,5,7,9]

return fn(L)

print(myinput(max))

print(myinput(min))

print(myinput(sum))

# 函数可以作为另一个函数的返回值

# 示例见:

# function_as_return_value.py

def get_function():

s = input("请输入你要做的操作:")

if s == "求最大":

return max

elif s == "求最小":

return min

elif s == "球和":

return sum

l=[2,4,6,8,10]

f = get_function()

print("f绑定:",f)

print(f(l))

练习:

# 写一个计算公式的解释执行器

# 已知有如下一些函数:

# def myadd(x,y):

# return x+y

# def mysum(x,y):

# return x-y

# def mymul(x,y):

# return x * y

# 定一个带有一个参数的函数 get_func(s):

# def get_func(s):

# ... # 此处自己实现

# 此函数的在传入字符串“加”或“+”返回myadd函数:

# 此函数的在传入字符串“乘”或“*”返回myadd函数:

# 在主函数中程序如下:

# def main():

# while True:

# s = input("请输入计算公式:") # 10 加 20

# l = s.split() # L = ["10","加","20"]

# a = int(l[0])

# b = int(l[2])

# in = get_fuc(l[1])

# print("结果是:",fn(a,b))

def myadd(x,y):

return x+y

def mysum(x,y):

return x-y

def mymul(x,y):

return x * y

def get_func(s):

if s == "加" or s == "+":

return myadd

elif s == "减" or s == "-":

return mysum

elif s == "乘" or s == "*":

return mymul

def main():

while True:

s = input("请输入计算公式:") # 10 加 20

if not s:

break

l = s.split() # L = ["10","加","20"]

a = int(l[0])

b = int(l[2])

fn = get_func(l[1])

print("结果是:",fn(a,b))

main()

函数的嵌套定义

函数嵌套定义是指一个函数里用def语句来创建其他函数的情况

# 示例见:

# function_embed_def.py

# 此示例示意函数的嵌套定义

def fn_outer():

print("fn_outer被调用")

# 此处能否创建新的函数并且调用呢?

def fn_inner():

print("fn_inner被调用!")

fn_inner() # 调用函数内部的fn_inner

fn_inner()

print("fn_outer调用结束")

fn_outer()

python 作用域

# 作用域也叫名字空间,是访问变量时查找变量名的范围空间

# 示例:

a = 100

def fx():

a = 10000 # a = 10000 和 a = 100 是两个不同作用的域内的变量

print(a)

fx()

print(a)

python的四个作用域  LEGB

作用域 英文解释 英文简写

局部作用域(函数内) Local(function) L

外部嵌套函数作用域 Enclosing function local E

函数定义所在模块的作用域 Global(module) G

python 内置模块的作用域 Builtin(python) B

来源:https://www.cnblogs.com/Axianba/p/11265519.html

python函数变量教程_Python 函数变量相关推荐

  1. python声明变量教程_Python定义变量

    变量就像是一个用来装东西的盒子,我们把要存储的东西放在这个盒子里面,再给这个盒子起一个名字.当我们需要用到盒子里的东西的时候,只要说出这个盒子的名字,就可以找到其中的东西了. 盒子里的东西是可以变化的 ...

  2. python用来查看变量类型的函数是什么_python查看变量类型的函数

    怎么查看变量的类型 python方法如下: type(变量),输出的结果就是变量的类型: 在Python里面变量在声明时,不需要指定变量的类型,变量的类型是动态指定的: 也就是说变量的类型,根据给出的 ...

  3. python不允许使用关键字作为变量名_python函数变量_python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数 - 云+社区 - 腾讯云...

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建. 在python 中, ...

  4. python中函数的调用_python函数的调用、函数中变量的使用之详解

    '''函数的工作原理:函数内部的变量都是临时的, 当你的函数返回以后,返回值可以被赋予一个变量. 这里是创建了一个新变量,用来存放函数的返回值. ''' def secret_formula(star ...

  5. python函数自定义教程_Python中自定义函数的教程

    在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 我们以自定义一个求绝对值的my_abs函数 ...

  6. python闭包函数使用教程_Python闭包装饰器使用方法汇总

    闭包内容: 匿名函数:能够完成简单的功能,传递这个函数的引用,只有功能 普通函数:能够完成复杂的功能,传递这个函数的引用,只有功能 闭包:能够完成较为复杂的功能,传递这个闭包中的函数以及数据,因此传递 ...

  7. python指定变量类型_Python#160;变量类型_python教程

    Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据 ...

  8. python变量运算符_Python(三) 变量与运算符

    一.什么是变量 变量 = [1,2] 二.变量的命名规则 字母,数字,下划线,首字母不能是数字 系统关键字 不能用在变量名中 保留关键字 区别大小写 a=1,   a='1',   a=(1,2),  ...

  9. python闭包函数的必要条件_Python 函数 functions、闭包 closure

    一般我们都知道,函数只有在调用的时候才会被执行 但是我们在用 def 定义一个函数时,编译器做了什么?或者什么都没做? 实际上,当用 def 定义一个函数时,就创建了一个函数对象,该对象封装了函数体, ...

  10. python中函数的定义_Python函数是什么_如何定义和调用函数?

    函数是什么? 本节Python培训教程是要大家认识一个"老朋友"--函数. 与数学中的函数不同,在Python中,函数不是看上去冰冷无聊的规则和公式,而是实打实的.有自己作用的代码 ...

最新文章

  1. 工业软件研究框架_聚焦十四五!先进制造急先锋——工业软件
  2. AI Time | 论道数据共享开放与隐私保护
  3. switch……case里的case能不能同时定义多个值呢?
  4. CocoaPods公有库的创建
  5. [原]逆向iOS SDK -- +[UIImage imageNamed:] 的实现
  6. range和xrange的区别
  7. JQuery中text(),html(),val()的区别
  8. 04-树4 是否同一棵二叉搜索树 (25 分)
  9. TabError的解决方法
  10. 你想成为Java架构师吗?掌握这六项就够了!
  11. R2: 相关系数、复相关系数及半偏相关系数之间的联系
  12. java如何简单的将一个三位正整数分解成三个数
  13. python concurrent.futures包使用,捕获异常
  14. java求一元二次方程:ax2+bx+c=0的根
  15. ⅴs2010控件名称及用方法_VS2010 用户自定义工具箱控件的制作方法
  16. Java并发学习笔记19 线程池 ThreadPoolExecutor
  17. 做人必须留的几张底牌
  18. 为什么现在的视频都会加入自动字幕功能?
  19. dorado 刷新_dorado5 datatree 刷新问题
  20. 如何加快 Synology Drive 的同步过程?(外网速度极慢)

热门文章

  1. 简单又好用得高效工具分享
  2. 使用Uber-go Zap日志库
  3. imo与slack竞品分析报告
  4. APP推广渠道之SEM渠道相关知识科普
  5. 张馨予一幅画拍出几十万,然而范冰冰却一直在向粉丝要画!
  6. python计算消费额_11、Python 数据分析-用户消费行为分析
  7. outlook2016 打不开超链接
  8. 作者用心之作,机器学习总结
  9. 自动驾驶 Apollo 源码分析系列,感知篇(三):红绿灯检测和识别
  10. 华师大计算机专业怎么样,2019年二本科班上岸华东师范大学计算机学硕,初试387分排名第四初复试经验分享!...