Python 函数的创建

def func2():
print('haha')
# 函数的返回值
# 函数的返回值,没有定义返回None,
# 有一个返回值返回这个object(可以返回一个函数对象),
# 有多个则是返回一个元组
return 0

Python 函数的调用

func2()

Python 函数的参数

def func3(x,y,z=5,*args,**kwargs):
print(x)
print(y)
print(z)
func3(1,2,3)
#实际参数(实参):1,2,,3
#形式参数(形参):x,y,z
#默认参数:z=5,(非必须传递)
def func3(x,y,z=5,*args,**kwargs):
print(x)
print(y)
print(z)
#位置参数的传递,位置的特性:需要一一对应
func3(1,2,3)
#关键字参数的传递,关键字的特性:不需要一一对应
func3(x=1,y=2,z=3)
#非固定参数:*args,**kwargs
#*args接收多余的位置参数的值,以元组形式
#**kwargs接收多余的关键字参数的值,以字典的方式
#混合参数的传递,特性:位置参数要在关键字参数前面,继承了位置和关键字的特性
func3(1,y=2,z=3)

Python 全局和局部变量

def test():
name='xiaoming'#这是一个局部变量
global name #定义一个全局变量

Python 函数的递归

  递归的三大特性:1.必须要有明确的结束条件,2.每次问题的规模要有所减少,3.递归的效率不高

def calc(n):
print(n)
if n>0:
return calc(int(n/2))
calc(10)

Python 高阶函数

  高阶函数分为二种(函数即变量):1.一个函数当参数传递个另一个函数,return返回一个函数的内存地址

#函数当参数传递
def add(a,b,i):
res=i(a)+i(b)
print(res)
add(1.222,2.111,int)
#函数当返回值返回
def func4():
print('this is func4')
return func5
def func5():
print('this is func5')
func5=func4()
func5()

Python 函数的嵌套

#函数的嵌套
def func6():
print('this is func6')
def func7():
print('this is func7')
func7()
func6()

Python 装饰器

  装饰器的条件:高阶函数+函数的嵌套

def logger(funcTest):   #把源代码的内存地址传递给装饰器
def waps(*args,**kwargs): #封装内部装饰器
print('befor') #装饰的内容
res=funcTest(*args,**kwargs)#调用源代码
print('after')
return res #返回funcTest的结果
return waps #返回封装的装饰器
@logger #funcTest=logger(funcTest)
#被装饰函数的源代码
def funcTest(x):
print('this is test file',x)
return x
#funcTest=logger(funcTest) #logger返回的是waps的内存地址,
x=funcTest(x=1) #实际调用的是上方的waps,通过内部的waps调用的funcTest
print(x)

Python 三层装饰器

def auth(auth_type): #第三层加入装饰器参数
def out(func):
def wrapper(*args,**kwargs):
if auth_type=='localhost':
if local_login():
print('登入成功')
return func(*args,**kwargs)
else:
print('登入失败')
elif auth_type=='file':
if file_login():
pass #文件接口登入
else:
print('没有这个登入接口')
return wrapper
return out
@auth(auth_type='localhost')
def index():
print('welcome to index page')
index()

python学习途径

友情推荐:  猿人学Python【https://www.yuanrenxue.com/】 由一群工作十余年的老程序员结合实际工作经验所写的Python教程。

新手Python第三天(函数)的更多相关文章

  1. python的三个函数(eval、exec、complie)和python版RMI

    一.python的三个函数: 1.eval函数: 之前已经讲过了这个函数,该函数也类似于php的eval,例如下边这个例子 eval("os.system('id')") 但是有个 ...

  2. Python第三周 函数详解

    def 函数名(): """注释说明"""" 执行逻辑体 return 返回值 定义不带参数的函数 带参数的函数 默认参数 这个是 ...

  3. Python 基础三 文件 函数

    今天回顾一下之前学的文件操作相关知识点,对于文件的操作,主要有一下几部分构成: 一.文件的基础知识 1.文件操作的基本流程 文件操作其实可以分成三大部分: 1.打开文件,获取文件句柄并赋予一个变量 2 ...

  4. 人生苦短我用Python 第三周 函数周

    函数的定义: 1,def 函数名(参数1,参数2......): "注释:函数的作用和参数,增加可读性", 2,函数体 3,返回值 最简单的函数: def func(): prin ...

  5. python第三课--函数

    函数的作用 编程大师Martin Fowler先生曾经说过:“代码有很多种坏味道,重复是最坏的一种!”,要写出高质量的代码首先要解决的就是重复代码的问题.例如3次求阶乘: m = int(input( ...

  6. python基础三:函数

    def name(参数1,参数2,参数3,...) 可以自定义一些自己需要的函数来简化自己的工作. 如:自定义一个计算函数 def  mycount(a,b,c): y=a+b-c return y ...

  7. Python基础三. 函数、lambda、filter、map、reduce

    一.概述 函数, 就是用一些语句组织起来实现一组特定的功能, 用来重复调用. 函数的作用及意义:最大化的重用代码和最小化的代码冗余以及对流程的分解. Python中有哪些函数: 内建的函数 第三方模块 ...

  8. 简学Python第三章__函数式编程、递归、内置函数

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  9. python学习笔记(三)函数

    一.定义函数 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参 ...

随机推荐

  1. 【转】 Class.forName()用法及与new区别 详解

    平时开发中我们经常会发现:用到Class.forName()方法.为什么要用呢? 下面分析一下: 主要功能Class.forName(xxx.xx.xx)返回的是一个类Class.forName(xx ...

  2. Day11 Java内部类

    什么是内部类? 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public ...

  3. 理解JavaScript继承(二)

    理解JavaScript继承(二) 5.寄生式继承 function object(o) { function F() {} F.prototype = o; return new F(); } fu ...

  4. 论文笔记 CVPR-2014 DeepReID Deep filter pairing neural network for person re-identification

    1. 摘要 第一篇用深度学习做Reid的文章,提出的FPNN采用端到端的训练方式,解决行人再识别的不对齐,光照,姿态等问题. 建立了一个新的带benchmark的数据集CUHK03,表现性能良好. 2 ...

  5. [Luogu P1120]小木棍·加强版

    #\(\mathcal{Description}\) 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过 \(50\) . 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开 ...

  6. ios学习路线—Objective-C(装箱和拆箱)

    概述 从前面的博文我们也可以看到,数组和字典中只能存储对象类型,其他基本类型和结构体是没有办法放到数组和字典中的,当然你也是无法给它们发送消息的也就是说有些NSObject的方法是无法调用的,这个时候 ...

  7. vue的采坑之旅--vue-cli脚手架loader重复--Invalid CSS after "...load the styles": expected 1 selector or at-rule

    在使用scss是可能会添加loader,例如 { test: /\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader'], } 然而当使 ...

  8. ruby的循环使用及区别(for、each等)

    ruby的循环有以下几种: times方法 for语句 while语句 until语句(与while相反) each方法(与for极度相似,在ruby内部,for语句是用each实现的) loop方法 ...

  9. uboot-2012.04.01移植编译前准备

    一:准备移植1.从下面的官网下载uboot-2012.04.012.建立sourceinsight工程 a.解压并在E:\colin weidongshan\transplant_u-boot-201 ...

  10. swt TableViewer

    http://blog.163.com/bluefield_wild/blog/static/8182709520085612235336/ package list; import java.uti ...