day11 函数和命名空间】的更多相关文章

# def my_sum(*args):# sum_2=0# for i in args:# sum_2+=i# return sum_2### ret=my_sum(1,2,3,4)# print(ret)#-------------------------------------------------------------------#命名空间, 名称空间 namespa# 局部命名空间:每个函数都拥有自己的命名空间# 全局命名空间:写在函数外边的变量名#内置命名空间:python解释器…
用户传入到函数中的实参数量不定时,或者是为了以后拓展, 此时要用到动态参数*args,**kwargs(万能参数.) *args(接受的是所有的位置参数) 以元组的形式返回给函数调用者. **kwargs(接收的是所有的关键字参数) 以字典的形式,返回给函数调用者. **dict 将字典的键值对添加到kwargs字典中. *可迭代对象(str,list,tuple,list,dict(key))每一个元素添加到args元组中. print不能接受**kwargs的关键字参数. # 在有多种类型的…
函数对象 函数是第一对象: # 函数名指向的值可以被当做参数传递 函数对象的特性(*****灵活运用,后面讲装饰器会用到) 函数名可以像变量一样被传递 # 变量可以被传递 name = 'jason' x = name print(x) # jason print(id(name), id(x)) # 3085464224688 3085464224688 # 尝试函数像变量一样被传递 def func(): print('from func') print(func) # <function…
day11 函数名的第一类对象及使用 1.可以当作值被赋值给变量 def func(): print(1) print(func) a = func a() 2.当作元素存放在容器中 def func(): print(1) lst = [func,func,func] for i in lst: i() 3.函数名可以当作函数的参数 def func(f): f() def foo(): print(123) func(foo) --------------------- def func(f…
day11 函数 一.函数基础 """ 1 什么是函数 函数是盛放代码的容器:把实现某一功能的代码放到一个函数内就制造一个工具 2 为何要用函数 没有用函数之前程序的问题: 1.代码冗余.程序的可读性差 2.可拓展性差 3 如何用函数 函数->实现某一功能的工具 函数定义->事先准备工具的过程 函数调用->遇到应用场景,拿来就用 函数的使用原则:先定义.后调用 """ 一 定义函数 语法 def 函数名(参数1,参数2,参数3,…
一.习题收藏 5.写函数,计算传入字符串中[数字].[字母].[空格] 以及 [其他]的个数,并返回结果. # def func4(s): # dic = { # 'num':0,'alpha':0,'space':0,'others':0 # } # for i in s: # if i.isdigit(): # dic['num'] += 1 # elif i.isalpha(): # dic['alpha'] +=1 # elif i.isspace(): # dic['space'] +…
一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(First-Class Object)呢? 在 Python 中万物皆为对象,函数也不例外,函数作为对象可以赋值给一个变量.可以作为元素添加到集合对象中.可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第一类对象所特有的. 1.函数身为一个对象,拥有对象模型的三个通用属性:id.类型.和值.…
一.函数的对象 1.1定义:函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象 1.2函数对象的应用 1 可以直接被引用 fn = cp_fn def fn(): num = 10 print('fn function run') func = fn fn() func() 2 可以当作函数参数传递 computed(cp_fn, 100, 20) def add(a, b): return a + b def low(a, b): return a - b…
1.为什么类中引用成员函数? 类将属性和方法做了封装.类是一种数据类型,也就是:固定大小内存块的别名. 类的定义是一个抽象的概念,定义时不分配内存,当用类定义对象时,才分配一个固定大小的内存块. 此时,定义对象后,类内定义的变量就会执行一次初始化,但是主函数输出area时就是乱码,因为是直接去对应内存取值,而不是调用函数计算. 下面例子就说明了,类内成员函数的作用. class circle { public: double r; double pi = 3.14; // 定义一个对象后,初始化…
1,参数陷阱 如果默认参数的只是一个可变数据类型,那么每一次调用的时候,如果不传值就共用这个数据类型的资源. 2,三元运算 c=a if a>b else b#如果a>b返回a,否则,返回b 变量 =条件返回True的结果 if 条件 else 条件返回False的结果 必须要有结果 必须要有if和else 只能是简单的情况 def func(a,b):     a if a>b else b print(func(5,1)) 3,命名空间与作用域 3.1命名空间的种类     命名空间…
命名空间和函数前面加上:: 经常看到命名空间前就只有:: 比如  ::test;这种代表是全局的test 比如  ::CreateDirectory(..),代表使用系统API也就是全局的 避免使用到局部定义的test命名空间或者函数   由https://www.cnblogs.com/likemao/p/10368614.html转载…
一.定义 """ 局部变量 : 在函数内部定义的变量(局部命名空间) 全局变量 : 在函数外部定义的或者使用global在函数内部定义(全局命名空间) 作用域: 作用的范围 局部变量作用域: 在函数的内部 全局变量作用域: 横跨整个文件 生命周期: 内置变量 > 全局变量 > 局部变量 """ 1.局部变量 # 1.局部变量 def func(): # 定义局部变量 a = 5 # 获取局部变量 print(a) # 修改局部变量 a…
一,函数名是什么? 函数名是函数的名字,本质:变量,特殊的变量. 函数名()执行此函数 ''' 在函数的执行(调用)时:打散. *可迭代对象(str,tuple,list,dict(key))每一个元素添加到args元组中. **dict 将字典的键值对添加到kwargs字典中. 在函数的定义时: 聚合. *args将所有的位置参数聚合到一个元组中. **kwargs 将所有的关键字参数聚合到一个字典中. ''' #python 2 没有nonlocal 1.单独打印函数名 def func1(…
""" 今日内容: 1.函数参数的分类 2.形参是对实参的值拷贝 3.实参的分类 4.形参的分类 5.打散机制 附1:字符串的比较 """ """ 一.函数参数的分类 1.函数的参数分为两类:形参 及 实参 -- 形参:形参是在创建过程中声明的参数,如果不给形参传入特定的实参,形参就没有实际的意义 -- 实参:实参是在函数的调用过程中传入的参数,这个参数具有实际意义,具有具体的数据类型 举例: def fn(n1,n…
形参与实参 def fn(形参们): pass # 形参:定义函数,在括号内声明的变量名,用来结束外界传来的值# 实参:调用函数,在括号内传入的实际值,值可以为常量.变量.表达式或三者的组合 # 注:形参随着函数的调用而产生,随着调用结束而销毁(有特例) 实参分类 位置实参:必须按照顺序给形参传值 关键字实参:按照关键字给形参传值,所以顺序可以颠倒 # 注:位置实参.关键字实参共存是,关键字实参必须出现在所有位置实参之后 形参的分类 位置形参:位置实参与关键字实参都可以对其传参默认形参:位置实参…
一.函数对象  函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象  函数对象的应用 1. 可以直接被引用  fn = cp_fn 2 .可以当作函数参数传递 computed(cp_fn, 100, 20) 3. 可以作为函数的返回值  get_cp_fn(cmd): return add 4. 可以作为容器类型的元素  method_map: 对应关系中的值 函数名存放的就是函数的地址,所以函数名也是对象,称之为函数对象 a= def fn(): num…
函数Ⅲ(内置函数&lambda表达式) 1.函数小高级 函数可以当做变量来使用: def func(): print(123) func_list = [func, func, func] # func_list[0]() # func_list[1]() # func_list[2]() for item in func_list: v = item() print(v) 函数可以当做参数进行传递,谁调用的函数返回值就给谁. def func(arg): print(arg) func(1)…
复习 # 什么是函数:具体特定功能的代码块 - 特定功能代码块作为一个整体,并给该整体命名,就是函数 # 函数的优点: # 1.减少代码的冗余 # 2.结构清晰,可读性强 # 3.具有复用性,开发效率高,维护成本低 # 如何定义一个函数:用def关键词来声明函数 ''' def fn(参数列表): 函数体 return 函数的返回值 ''' # -- 定义函数时,函数体不会被执行 | 函数必须先定义后使用 # 函数的四部分: # 函数名:存放着函数的地址,是调用函数的依据 # 函数体:解决问题的…
形参与实参 参数介绍: 函数为什么要有参数:因为内部的函数体需要外部的数据 怎么定义函数的参数:在定义函数阶段,函数名后面()中来定义函数的参数 怎么使用函数的参数:在函数体中用定义的参数名直接使用 实参:有实际意义的参数 -- 在函数调用的时候,()中传入的参数 形参:参数本身没有意义,有实参赋予形参值后,该形参就具备了意义补充:有默认值的形参,在没有被实参赋值,具备的是自身意义,但一旦被实参赋值,意义同实参 - def add(n1, n2=2): -- 在定义函数的时候,()中出现的参数…
复习 什么是函数? 具体特定功能的代码块 - 特定功能代码作为一个整体,并给该整体命名,就是函数 函数的优点 : 1.减少代码的冗余,2.结构清晰,可读性强 3.具有复用性,开发效率高,维护成本高 如何定义一个函数 : 用def关键词来声明函数   def  fn(参数列表):|  函数体 | return 函数的返回值 定义函数时,函数体不会被执行 |  函数必须先定义后使用 函数的四部分 :1. 函数名:存放着函数的地址,是调用函数的就依据 2. 函数体:解决问题的代码块 3. 参数列表:外…
今天内容 函数的参数详解 形参与实参 形参及形式参数,就是在定义函数是括号中指定的参数(本质就是一个名字) 实参及实际参数,指的是在调用函数是传入的参数)(本质就是一个值) 在调用函数是就会把形参和实参绑定在一起(变量名) 在函数调用结束之后绑定关系就解除了 def func1(a,b)#a,b就是形参a=1,b=2 print(a) print(b) func1(1,2)#1,2就是实参 位置参数(用的最多) 根据调用阶段 参数分为两类 形参和实参 所以对应的 位置参数也有两种 位置形参 位置…
一.函数名应用 函数名是什么?函数名是函数的名字,本质:变量,特殊的变量. 函数名(),执行此函数. python 规范写法 1. #后面加一个空格,再写内容,就没有波浪线了. 2.一行代码写完,下面一行的的内容要空2行, 3.逗号2个边的内容要有空格. 如果是不规范的写法,Pycharm编辑器,会有灰色的波浪线显示. 1.单独打印函数名 def func1(): print(666) print(func1) 执行输出: <function func1 at 0x000001455800A95…
一.函数名的应用 1.函数名就是函数的内存地址 def func(): print(666) func() print(func) #函数的内存地址 2.函数名可以作为变量 def func1(): print(666) f1 = func1 f2 = f1 f2() #执行结果为 666 3.函数名可以作为函数的参数 def func1(): print(666) def func2(x): x() func2(func1) 4.函数名可以作为函数的返回值 def wraaper(): def…
内容大纲 一: 函数的运行 二: 闭包 三: 迭代器 四: 生成器 五: 列表生成器 六: 列表推导式 七: 生成器表达式 八: 匿名函数 一: 函数的运行 1:函数名是一个特殊变量 def func(): # print(666) # print(func) 2:函数名可以当做变量进行赋值 # f1 = 2 # f2 = f1 # f3 = f2 # print(f3) # def func(): # print(666) # func1 = func # f2 = func1 # f3 =…
1.  函数名就是内存地址 def func(): ') print(func) >>>> <function func at 0x00000000003DC1E0> 2, 函数名可以被作为变量被传递 def func1(): #2 函数名可以作为变量被传递 ') f1 = func1 f2 = f1 f2() # 执行 func1() 3. 函数名可以被作为参数传递 def func1(): # 3.函数名可以作为参数被传递 print(123) def func2(…
函数对象:函数是第一类对象,函数名指向的值是可以被当作参数进行传递的 1.函数名可以被传递 2.函数名可以被当作参数传递给其它函数 3.函数名可以被当作函数的返回值 4.函数名可以被当作容器类型的参数 函数的嵌套调用:在函数的内部调用其它的函数,可以将复杂的逻辑简单化 # 比较输出最大的数 def my_max(x,y): if x > y: return x return y def my_max4(a,b,c,d): res1 = my_max(a,b) res2 = my_max(res1…
2019.4.11 S21 day11笔记总结 1. 函数小高级 ( 5* ) 1 函数名可以当作变量来使用 def func(): print(123) v1 = func # func代表函数的地址 func() v1() # v1.func的函数地址相同,执行调用的函数也相同 def func(): print(123) func_list = [func, func, func] # func_list[0]() a # func_list[1]() b # func_list[2]()…
1. day 09 内容复习 # 函数 # 可读性强 复用性强 # def 函数名(): # 函数体 #return 返回值 # 所有的函数 只定义不调用就一定不执行 #先定义后调用 #函数名() #不接收返回值 #返回值 = 函数名() #接收返回值 #返回值 # 没有返回值 :默认返回None # 不写return:函数内的代码执行完毕自动结束 # 只写return:结束一个函数 # return None # 返回一个值 :结束了函数且返回一个值,可以是任意的值 # 返回多个值 : 多个值…
函数 动态参数 *args def sum(*args): ''' 任何参数都会被args以元组的方式接收 ''' print(type(args)) # result:<class 'tuple'> sum = 0 for i in args: sum += i return sum print(sum(1, 2, 3)) # result:6 print(sum(*[1, 2, 3])) # result:6 # 12,13行等价 # * 表示将这个列表按照顺序打乱传入 **kwargs…
*** 坚持坚持,即使你不太强*** 1.函数的动态传参 2.函数的命名空间及作用域 3.函数嵌套 4.global和nonlocal关键字 一.函数的动态传参 1. *args: 位置参数动态传参,  *号在这里表示接收位置参数的动态传参,接收的是元组. 例: def chi(*food): #参数名是food *表示动态传参 print(food) chi("大米饭","龙虾面","馒头") chi("馒头","…