当前位置: 首页 > news >正文

郴州品牌网站建设推广潍坊营销型网站制作

郴州品牌网站建设推广,潍坊营销型网站制作,湖北建设网站,wordpress简书函数的灵活性非常高#xff0c;除了常规定义的位置参数以外#xff0c;还支持默认参数、关键字参数、以及可变参数 ... 这样以来#xff0c;不但能应对各种复杂的情况#xff0c;甚至还可以简化调用者的代码。 位置参数 在调用函数时#xff0c;一般会根据函数定义的参数… 函数的灵活性非常高除了常规定义的位置参数以外还支持默认参数、关键字参数、以及可变参数 ... 这样以来不但能应对各种复杂的情况甚至还可以简化调用者的代码。 位置参数 在调用函数时一般会根据函数定义的参数位置来传递参数这样的参数叫做位置参数。 考虑下面的例子函数包含了两个参数 - name 和 msg def greet(name, msg): ...     print(Hello, {}, {}!.format(name, msg)) ... 调用它很容易 greet(Pony, nice to meet you) Hello, Pony, nice to meet you! 这里值会按照顺序被依次分配。由于“Pony”是第一个值所以它会被分配给第一个参数 name同样地“nice to meet you”会被分配给第二个参数 msg。 当传递两个值时函数运行地很顺利。但倘若参数的个数不匹配会发生什么 greet(Pony)  # 少一个参数 ... TypeError: greet() missing 1 required positional argument: msg 显然解释器会发牢骚。但对 Python 来说要解决这个问题简直是易如反掌继续往下看 默认参数 在定义函数时可以使用赋值运算符为参数指定默认值 def greet(name, msg  nice to meet you): ...     print(Hello, {}, {}!.format(name, msg)) ...注意 如果参数没有默认值在调用函数时必需为其指定一个值如果有默认值那么在调用时值是可选的如果为其提供了一个值将会覆盖默认值。 由于 name 没有默认值所以必须指定值而 msg 有默认值所以值是可选的 greet(Pony)                   # 使用默认值 Hello, Pony, nice to meet you!greet(Pony, give me a hug)  # 覆盖默认值 Hello, Pony, give me a hug! 值得注意的是函数中的所有参数都可以有默认值但是一旦存在一个默认参数其右侧的所有参数也必须有默认值。 也就是说非默认参数不能在默认参数之后。例如像下面这样就会报错 def greet(msg  nice to meet you, name): ...     print(Hello, {}, {}!.format(name, msg)) ...File stdin, line 1 SyntaxError: non-default argument follows default argument 关键字参数 为方便起见Python 还允许使用 key value 形式的关键字参数调用函数 def greet(name, msg): ...     print(Hello, {}, {}!.format(name, msg)) ... 当以这种方式调用函数时所有传递的关键字参数都必须与函数接受的某个参数匹配并且它们的顺序不重要 greet(name  Pony, msg  nice to meet you)  # 按循序传递 Hello, Pony, nice to meet you!greet(msg  nice to meet you, name  Pony)  # 顺序颠倒也可以 Hello, Pony, nice to meet you! 此外它还可以和位置参数混合使用但关键字参数必须在位置参数之后 greet(Pony, msg  nice to meet you)  # 位置参数与关键字参数混合使用 Hello, Pony, nice to meet you! 所以如果像下面这样调用就会报错 greet(name  Pony, message  nice to meet you)  # message 不存在 ... TypeError: greet() got an unexpected keyword argument messagegreet(msg  nice to meet you, Pony)  # 关键字参数不能在位置参数之前 ... SyntaxError: positional argument follows keyword argument 可变参数 可变参数也被称为不定长参数顾名思义就是传入的参数个数是可变的可以是任意多个0、1、2 ...。 包裹位置传递 在参数名之前可以添加一个星号*在函数内部所有传入的参数都会被变量 names 收集最终按照位置将它们合并为一个元组 def greet(*names): ...     print(Hello,, names) ...尝试一下传递不同个数的参数 greet()  # 没有参数为空元组 Hello, ()greet(Pony) Hello, (Pony,)greet(Jack Ma, Pony) Hello, (Jack Ma, Pony) 通常情况下可变参数*会出现在形参列表的最后因为它们会把传递给函数的所有剩余输入参数都收集起来 def greet(msg, *names): ...     print(Hello, {}, {}!.format(names, msg)) ...greet(nice to meet you, Jack Ma, Pony) Hello, (Jack Ma, Pony), nice to meet you! 话虽如此但可变参数*之后还可以出现其它参数只不过这些形参都是“强制关键字”参数这意味着它们只能被用作关键字参数而不能是位置参数 def greet(*names, msg): ...     print(Hello, {}, {}!.format(names, msg)) ...greet(Pony, msg  nice to meet you)  # 只能被用作关键字参数 Hello, (Pony,), nice to meet you!greet(msg  nice to meet you, Pony)  # 不能被用作位置参数 ... SyntaxError: positional argument follows keyword argument 包裹关键字传递 还有一种机制在参数名之前添加两个星号**当这种形式出现时msgs 将收集所有关键字参数最终将它们合并为一个字典 def greet(**msgs): ...     print(Hello,, msgs) ... 和上面一样尝试传递不同个数的参数 greet()  # 没有参数为空字典 Hello, {}greet(name  Pony) Hello, {name: Pony}greet(name  Pony, msg  nice to meet you) Hello, {name: Pony, msg: nice to meet you} 此外*names 还可以与 **msgs 形式的参数相结合但*names 必须出现在 **msgs 之前。 例如像下面这样就会报错 def greet(**msgs, *name): ... SyntaxError: invalid syntax 解包裹参数 正如【可变参数】那样也可在函数调用中使用 * 和 **。只不过在这种情况下与在函数定义中的语义相反参数将被解包裹而不是被包裹 def greet(name, msg): ...     print(Hello, {}, {}!.format(name, msg)) ...尝试一下元组用 * 来传递位置参数 t  (Pony, nice to meet you)greet(*t) Hello, Pony, nice to meet you! 同样地字典也可以用 ** 传递关键字参数 d  {name:Pony, msg:nice to meet you}greet(**d) Hello, Pony, nice to meet you! 位置参数、默认参数、可变参数混合使用 根据上面的介绍我们不难发现当这些参数混合使用时应遵循一个基本的原则位置参数 - 默认参数 - 包裹位置 - 包裹关键字定义和调用都应遵循该顺序。 例如定义一个函数能够同时向多个人发送多条消息 def greet(sender, address  BeiJing, *receivers, **msgs): ...     print(Hello, I am {}, from {}..format(sender, address)) ...     print(- * 30)      # 华丽的分割线 ...     for rec in receivers: ...         for key, val in msgs.items(): ...             print(No {}: {}, {}!.format(key, val, rec)) ...         print(- * 30)  # 华丽的分割线 ...为了显示更好的效果我们在中间穿插了一些华丽的分割线 greet(Waleon, Xi\an, Jack Ma, Pony, one  nice to meet you, two  give me a hug) Hello, I am Waleon, from Xian. ------------------------------ No one: nice to meet you, Jack Ma! No two: give me a hug, Jack Ma! ------------------------------ No one: nice to meet you, Pony! No two: give me a hug, Pony! ------------------------------
http://www.dnsts.com.cn/news/246798.html

相关文章:

  • 网站制作开发的步骤和方法wordpress微信分享才能查看
  • 建站全过程wordpress close
  • 做牙科设计的网站中国电商建站程序
  • 源码站用dz wordpress免费手游推广平台
  • 主营商城网站建设wordpress需要什么环境
  • 网站开发课我的网站模板下载不了
  • 网站规划步骤有哪些浙江做公司网站多少钱
  • 做网站的图片尺寸怎么设定邯郸网上房地产官网
  • 手机网站设计公pythons网站开发
  • 网站建设分金手指专业十八建站优化内容
  • 网站建设培训总结手机app软件
  • 网站点播视频如何做考试报名费悦生活建设银行网站
  • 上海网站建设品牌杭州优化商务服务公司
  • 用php怎么做网站深圳装修公司前十强
  • 视频上传网站建设为网站吸引流量的方法
  • 建造网站 备案微信分销系统价格
  • 北京注销网站备案电商千万不要做虾皮
  • 瑞丽企业网站建设办公空间设计公司有哪些
  • 网络营销软件站wordpress禁止生成多个缩略图
  • 怎么在手机上做企业网站遂溪手机网站建设公司
  • photoshop+做网站logowordpress 二级目录 404
  • 做响应式网站是不是都用rem莱芜在线招聘
  • 嘉兴网站建设培训微信小程序怎么制作商城
  • 常规网站建设内容免费seo网站的工具
  • 眉山建设局网站模板下载网站
  • 网站页面怎么做导航大连免费营销型建站网络推广
  • 做ppt的动图下载哪些网站做企业网站需要买什么
  • 做教育门户网站法律风险网站开发app开发主营业务
  • 马拉松网站建设方案光伏电站建设的行业网站
  • 所见即所得的网站开发软件宁波建设监理协会