又堕落几天,明天最后一天放假,开始认真学习

今天在看Python的函数调用

感觉还有点像面向对象的那种意思,

def my_abs(x):

    if x>=0:

        return x

    else:

    return -x


将my_abs()保存为abstest.py文件,则可以使用

from abstest import my_abs来导入这个函数my_abs(),这个和

selenium自动化模块导入python差不多,也很符合面向对象的调用模块中的函数。


定义函数时可以使用默认参数:

默认参数必须指向不变对象

def add_end(L=[ ]):

    L.append('END')

    return L


add_end([1,2,3])------------->[1,2,3,'END']

add_end()------------------->['END']

再次调用函数时出错:

add_end()------------------->['END','END']

add_end()------------------->['END','END','END']

原因如下:

Python函数在定义的时候,默认参数L的值就被计算出来,即【】。因为默认参数L也是一个变量,指向对象[]的指针,每次调用该函数,如果改变看L 的内容,即指向的内容的值,则下次调用时默认参数的内容就变了,不再是函数定义时的【】了

所以应该定义时将默认参数指向为不变对象:

def add_end(L=None):

    if L is None:

        L = []

    L append('END')

    return L

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值