函数传入参数顺序怎么解决?

函数传入参数顺序怎么解决?


http://img1.sycdn.imooc.com//climg/5ce54092000120a505240673.jpg

class IterRange:
   """
   模拟range函数
   """
   def __init__(self, end, start=1):
       self.start = start - 1
       self.end = end
   def __iter__(self):
       return self
   def __next__(self):
       if self.start < self.end:
           self.start += 1
           return self.start
       else:
           raise StopIteration

for i in IterRange(10,19):
   print(i)

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕美 2019-05-23 10:07:26

同学,你好,同学的传参方式是将10传给了end,19传给了start,传了实参之后会将默认值替换掉,同学在传参时可以只传end的值。

函数的参数传递分以下几种情况:

1、必需参数:必需以正确的顺序进行使用,实参的数量和形参的数量保持一致

def fun1(a,b,c):
    print(a,b,c)

fun1(5,10,8)    # 5 10 8

2、关键字参数:关键字和形参能够匹配上,并且实参的顺序可以任意

def fun2(name,age):
    print("I am",name,"I am",age)

#使用关键字参数
fun2(name="jack",age=18)    # I am jack I am 18
fun2(age=18,name="jack")    # I am jack I am 18

3、默认参数:如果在调用函数的时候,对默认参数不传值,则使用的是默认值,在参数列表中,默认参数只能出现在最后面。

def fun3(name,age=10):
    print("I am", name, "I am", age)

fun3("tom")   # I am tom I am 10
fun3("bob",30)   # I am bob I am 30

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~

  • 提问者 qq_慕娘5109606 #1
    我只是想知道为什么默认传参数一定要放最后面,不然就会报错感觉这个非常坑。
    2019-05-23 10:36:52
  • 好帮手慕美 回复 提问者 qq_慕娘5109606 #2
    python函数的参数定义顺序必须为:位置参数,默认参数,可变参数,关键字参数,违背了语法规则肯定就会报错的呀。
    2019-05-23 16:19:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师