ietar 发表于 2019-3-4 15:43:43

python有没有方法在定义函数时限制参数的类型

不符合就报错这样的?
比如求最小公约数 需要传入的x,y参数均为正整数

#1
#辗转相除法
def gcd(x,y):
    if x < y:
      x,y = y,x
      #由大到小排列x,y
    while x % y != 0 :
      x , y = y , x%y
    return y

冬雪雪冬 发表于 2019-3-4 15:51:13

加个判断:
#1
#辗转相除法
def gcd(x,y):
    if isinstance(x, int) andisinstance(y, int) and x > 0 and y > 0:
      if x < y:
            x,y = y,x
            #由大到小排列x,y
      while x % y != 0 :
            x , y = y , x%y
      return y
    else:
      raise ValueError
可以将raise改为print方式

ietar 发表于 2019-3-4 18:53:32

冬雪雪冬 发表于 2019-3-4 15:51
加个判断:

可以将raise改为print方式

功能确实是能实现 不过有没有在定义的阶段就限制参数的方法呢 这样调用函数就能判断 不用读到函数体里
页: [1]
查看完整版本: python有没有方法在定义函数时限制参数的类型