python自学者的分享:自定义函数、参数作用域、匿名函数、装饰器

#自定义新函数 函数名newhs
def newhs(a,b=1):
    #b的默认值为1,在没有传入b值时,采用默认值,,默认值参数不能放前边
    return a-b
print(newhs(5,3)) #按顺序传参数
print(newhs(b=3,a=5)) #按关键字传参数
print('b取默认值=',newhs(5)) #按关键字传参数
def newhs2(*names):
    #传入可变数量参数,names为元组
    print(names)
二班同学=('史珍香','范剑','范统','庞光','杜子滕','刘产','杨伟')
newhs2(二班同学) #相当于将二班同学当成一个元素
newhs2('史珍香','范剑','范统','庞光','杜子滕','刘产','杨伟') #每个名字为一个元素
#参数作用域
地址='上海'
m=5
k=6
def dz():
    地址='深圳'
    global m  #声明m为全局变量
    m=99
    print(地址,m,k) #k没有声明,直接使用,为外部已经声明的变量
dz()
print(地址,m) #地址并没有因为函数调用过而改变,因为内部'地址'新定义了和外面的不是同一个变量
#匿名函数 lambda 参数列表:表达式
#表达式计算结果即为返回结果,无需return ,lambda函数也可成为参数昨晚其他函数的变量
MA=lambda a,b:(a+b)/2
print(MA(5,3))
list1=[1,2,3,4,5]
newl1st=filter(lambda x:x%2==1,list1) #筛选奇数
#filter是一个特殊的筛选函数,第一个参数为筛选规则,第二个参数为筛选对象
print('筛选后的数据类型:',type(newl1st))
print('筛选结果:',list(newl1st))
#装饰器 本身是一个函数,通过注解将装饰器中的功能附加都其他函数中
def mm(yy):
    def qq():
        print('ppppppppppp')
        yy()
        print('rrrrrrrrrrr')
    return qq
@mm
def ww():
    print('大家好')
ww()


关于装饰器还有点似懂非懂的感觉,,,,

相关文章

python变量作用域详解

python变量的一生包括变量的申明,引用和修改及消亡,此文主要关注变量的引用和修改。变量从作用域来分主要包括全局变量,嵌套(外部)变量,局部变量。一,全局变量,一般定义在模块顶部,对整个模块都生效,...

看一看,Python这四种作用域你都知道吗?

点赞、收藏、加关注,下次找我不迷路一、啥是作用域?先打个比方比如说,你在自己的卧室(相当于一个小空间)里放了一本书,这本书在卧室里随便你怎么看,这就是这本书在卧室这个 "作用域" 内...

一文读懂Python中的全局变量局部变量和作用域

通常小白在写代码时,只知道引用变量来应对一些基础的编码问题,当面试官问及局部变量和全局变量的具体细节时,就会一脸懵逼,傻傻分不清楚!其实想要彻底了解局部变量和全局变量的关系,本质是大家需要明白何为作用...

新手学Python避坑,学习效率狂飙! 五、Python循环中的变量作用域

在 Python 里,变量的作用域指的是变量可被访问的代码范围。循环里的变量作用域在 Python 中是个常见且关键的概念。一、变量作用域Python 里的变量作用域主要有局部作用域和全局作用域。1、...

新手易犯错的地方Python作用域

好多新手一开始比较容易犯错的地方理解作用域对于编写高效的python代码十分重要现在就讲下四种作用域,按照从内到外的顺序:局部作用域(Local) - 在函数内部定义的变量嵌套作用域(Enclosin...

Python闭包实现:nonlocal关键字与变量作用域

在Python编程中,闭包是一个强大而优雅的特性,它允许函数捕获并记住其定义环境中的变量值。通过闭包,可以创建更加灵活和模块化的代码结构。而nonlocal关键字的引入,则进一步增强了Python闭包...