美文网首页Python
函数的常用参数定义及返回

函数的常用参数定义及返回

作者: cook__ | 来源:发表于2018-10-04 13:06 被阅读8次
问题1:我们想编写一个可接受任意数量参数的函数
解决方案:

1、要编写一个可接受任意数量的位置参数的函数,可以使用以*开头的参数

def avg(first, *rest):
    """ rest是一个元组 """
    return (first + sum(rest)) / (1 + len(rest))

print(avg(2))
print(avg(1, 2, 3))

2.0
2.0

2、要接受任意数量的关键字参数,可以使用开头的参数;
3、如果要函数能同时接受任意数量的位置参数和关键字参数,需要联合使用
*

def anyargs(*args, **kwargs):
    print(args)  # 元组
    print(kwargs)  # 字典
注意:

打头的参数只能作为最后一个位置参数出现;而以*打头的参数只能作为最后一个参数出现

问题2:我们希望函数只通过关键字的形式接受特定的参数
解决方案:将关键字参数位置放在以打头的参数或者是一个单独的之后
def recv(maxsize, *, block):
    'Receives a message'
    pass

# recv(1024, True) # TypeError: recv() takes 1 positional argument but 2 were given
recv(1024, block=True)
总结:

1、当指定可选参数的时,keyword-only参数方式可读性更高;
2、在有关**kwagrs的技巧中,使用keyword-only参数常常也是可取的。

问题3:将元数据信息附加到函数参数上
def add(x: int, y: int) -> int:
    """
    1、注解仅仅是提示的作用;
    2、通常只有类和字符串才显得最有意义;
    """
    return x + y
问题4:定义带有默认参数的函数:想定义一个函数,其中一个或多个参数是可选的并且带有默认值
注意事项:

1、参数默认值已经在函数定义的时候就确定好了

x = 1
def spam(a, b=x):
    print(a, b)
spam(1)  # 1,1
x = 2  # 修改变量x的值并没有对函数产生任何效果
spam(1)  # 1,1

2、给默认参数赋值的应该总是不可变对象,比如:None, True, False、数字或者字符串。
如果默认参数是个可变的对象,下面示例展示出产生的问题:

def spam(a, b=[]):
  return b
x = spam(1)
print(x)
x.append(99)  # 修改了返回值得内容
print(x)
print(spam(1))  # [99]

# 解决方案:
def spam(a, b=None):
  if b is None: # 不要使用not b的语法(因为'', 0这些都会导致这个条件成立)
      b = []
问题5:我们想从函数中返回多个值
解决方案:只要简单的返回一个元组即可
def myfun():
    """ 返回了一个元组 """
    return 1, 2, 3

相关文章

  • 函数的常用参数定义及返回

    问题1:我们想编写一个可接受任意数量参数的函数 解决方案: 1、要编写一个可接受任意数量的位置参数的函数,可以使用...

  • Kotlin基本语法

    一.函数的定义 1.定义函数 无返回值 无参数 2.定义函数 有参数 3.定义函数 有参数有返回值 注: 在kot...

  • 7章 初始函数

    本章大纲 函数定义与调用 参数与返回值 内置函数 函数的定义与调用 函数的定义 函数的调用 参数与返回值 内置函数...

  • Swift函数

    概览函数定义隐式返回返回元组(实现多值返回)函数参数参数标签默认参数值可变参数输入输出参数函数重载内联函数函数类型...

  • iOS开发 - 「Swift 学习」Swift 函数(函数类型定

    Swift 函数类型及使用 函数都有特定的函数类型,由函数的参数类型及返回类型组成 函数定义 使用关键字 func...

  • swift 函数

    Swift 函数 函数声明: 告诉编译器函数的名字,返回类型及参数。 函数定义: 提供了函数的实体。Swift 函...

  • Swift3.0 函数整理

    函数定义 无参数函数 多参数函数 无返回值函数 多重返回值函数 可选元组返回类型函数 函数参数标签和参数名称 设定...

  • swift学习笔记(6)--- 函数

    1、函数的定义与调用 2、函数参数与返回值 无参数函数 多参数函数 无返回值函数 多重返回值函数 可选元组返回类型...

  • 函数相关

    函数定义 def 定义函数,函数返回值用return; python参数定义顺序必须是:必选参数、默认参数、可变参...

  • Swift-函数

    官方文档 定义和调用函数 定义: 调用: 函数参数和返回值 没有参数的函数 返回值为字符串的值 具有多个参数的函数...

网友评论

    本文标题:函数的常用参数定义及返回

    本文链接:https://www.haomeiwen.com/subject/sbjtaftx.html