本站使用了 Pjax 等基于 JavaScript 的开发技术,但您的浏览器已禁用 JavaScript,请开启 JavaScript 以保证网站正常显示!

Python函数相关

自定义函数文件名为my_abs.py

本文转自咬定面包不放松。

def my_s(x):
    if x >= 0:
        return x
    else:
        return -x

在当前文件夹中打开Python解释器,引入该函数

From: 咬定面包不放松

>>> from my_abs import my_s  //引入当前目录下的my_abs.py文件中的 my_s函数。
//对比一下自定义函数和abs的差异
>>> my_s('123')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\360JR\Desktop\my_abs.py", line 2, in my_s
    if x >= 0:
TypeError: '>=' not supported between instances of 'str' and 'int'  //参数类型不对,Pthon解释器自动检查并抛出TypeError错误
>>> abs('123')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: bad operand type for abs(): 'str'
>>>

当传入不恰当的参数时,自定义my_s() 和 内置的abs() 函数报错存在差异:内置函数会检查出参数错误,而自定义没有参数检查,会导致if语句出错。

修改my_abs的定义,对参数类型做检查,只允许整数和浮点数,可利用内置函数isinstance()实现:

def my_s(x):
    if not isinstance(x, (int, float)):  //如果数据类型不为整数或浮点数,则报错
        raise TypeError('bad operand type')
    if x >= 0:
        return x
    else:
        return -x

1.png


 继续浏览关于 的文章

 本文最后更新于 2019/09/02 05:01:09,可能因经年累月而与现状有所差异

 引用转载请注明:咬定面包不放松 > Python > Python函数相关

您直接访问了本站,莫非记住了域名?