python函数应用_Python函数的定义和函数的应用

1、函数能提高应用的模块性,和代码的重复利用率。

2、参数传递为,可更改(mutable)与不可更改(immutable)对象。

3、闭包和装饰器。

def hello():

print("hello function!");

hello()

输出:

hello function!def p_num():

global num

print(num)

num=50

num=20

p_num()

print(num)

输出:

20

50

结论:

global语句可以起到声明变量作用域。

def area(width, height):

return width * height

def welcome(name):

print("www.what21", name)

welcome(".com")

width = 40

height = 50

print("width =", width , ",height =", height, ",area =", area(width, height))

输出:

www.what21 .com

width = 40 ,height = 50 ,area = 2000def ChangeInt(a):

a = 100

b = 88

ChangeInt(b)

print(b) # 结果是 88

输出:

88

结论:

1、函数的不可变类型:类似其他语言的值传递,数值、字符串和元组为不可变类型。

2、如fun(a),传递的只是a的值,没有影响a对象本身。比如在fun(a)内部修改a的值,只是修改另一个复制的对象,不会影响a本身。

def ChangeList(mylist):

"修改传入的列表"

mylist.append([1, 2, 3, 4]);

print("函数内取值: ", mylist)

return

# 调用changeme函数

mylist = [10, 20, 30];

ChangeList(mylist);

print("函数外取值: ", mylist)

输出:

函数内取值:  [10, 20, 30, [1, 2, 3, 4]]

函数外取值:  [10, 20, 30, [1, 2, 3, 4]]

结论:

1、函数的可变类型,类似其他语言的引用传递,列表和字典为可变类型。

2、如fun(la),则是将la真正的传过去,修改后函数外部的la也会受影响。

def outer():

num = 10

def inner():

nonlocal num   # nonlocal关键字声明

num = 100

print(num)

inner()

print(num)

outer()

输出:

100

100

结论:

1、当内部作用域需要修改外部作用域的变量时,就要用到global和nonlocal关键字。

2、如果需要修改嵌套作用域(enclosing 作用域,外层非全局作用域)中的变量则需要nonlocal关键字。

def w1(func):

def inner():

print(" 验证1")

print(" 验证3")

print(" 验证4")

return func()

return inner

@w1

def f1():

print( 'f1')

@w1

def f2():

print('f2')

@w1

def f3():

print('f3')

@w1

def f4():

print('f4')import time

def timer(func):

def inner():

start = time.time()

func()

end=time.time()

print(end - start)

return inner

print(time.time());

@timer   #==> func1 = timer(func1)

def func1():

print('in func1')

func1()

输出:

1521029364.651659

in func1

0.0

结论:

1、装饰器的本质:一个闭包函数。

2、装饰器的功能:在不修改原函数及其调用方式的情况下对原函数功能进行扩展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值