zoukankan      html  css  js  c++  java
  • python 函数


    # 函数作用:封装;封装作用:复用

    # 加法
    def add(x, y):
    result = x + y
    return result

    result = add(4, 5)
    print(result)

    # 函数参数
    def f(x, y, z):
    pass
    # 位置参数调用*
    f(1, 2, 3) # 第一种方法
    # 关键字参数调用(参数顺序可以打乱)*
    f(x=1, y=2, z=3)
    f(z=None, y=10, x=[1]) # 打乱参数顺序

    # 参数默认值
    def add(x=4, y=5):
    return x + y
    # 调用
    add() # 结果:9
    add(6) # 结果:11
    add(x=6, y=7) # 结果:13

    # 登录
    def login(host='127.0.0.1', port='8080', username='wang', password='123456', **kwargs):
    pass
    # 调用
    login()
    login('127.0.0.1', '80', 'tom', '123456')
    login(username='tom', password='123456')

    # 一个参数
    def add(nums):
    sum = 0
    for i in nums:
    sum += i
    return sum
    print(add([1, 2, 3, 4, 5]))
    print(add((1, 2, 3, 4, 5)))

    # 可变位置参数(一个形参可以匹配0个或多个参数:*nums)*
    def add(*nums):
    sum = 0
    print(type(nums)) # tuple
    for i in nums:
    sum += i
    return sum
    print(add(1, 2, 3, 4, 5))

    # 可变关键字参数(可以接受多个关键字参数:**kwargs)*
    def showConfig(**kwargs):
    print(kwargs) # dict
    for k, v in kwargs.items():
    print('{}={}'.format(k, v))
    # 调用
    showConfig(host='127.0.0.1', port='8080', username='wang', password='123456')

    # 混合参数
    def showConfig(useranme, password, **kwargs):
    pass
    def showConfig(useranme, *args, **kwargs):
    pass

    # keyword-only参数(Python3中在*args后出现的普通参数x)
    def fn(*args, x, y, **kwargs):
    pass
    def fn(*args, x):
    print(x)
    print(args)
    # 调用
    fn(1, 2, 3, x=10)# keyword-only参数的另一种形式def fn(*, x, y): # 只允许两个参数,且两个参数必须是keyword-only print(x, y)def fn(z, *, x, y): print(x, y)def fn(*args, x=1): print(x) print(args)# 普通参数 fun(x)# 普通参数加缺省值 fun(x=10)# 位置参数 fun(*args)# 可变参数 fun(**kwargs)# keyword-only参数 fun(*, x=10)
  • 相关阅读:
    linux内核中的crng是什么?
    linux内核中的hisi_sas是什么?
    linux内核中的brd是什么?
    内核中的xenfs是什么?
    linux内核中的cfq输入输出调度算法
    linux内核中的最简单的输入输出调度算法noop
    linux内核中侧async_tx是什么?
    linux内核中的fuse是什么?
    Executors.newSingleThreadScheduledExecutor();线程池中放入多个线程问题
    Executors.newSingleThreadScheduledExecutor() 问题
  • 原文地址:https://www.cnblogs.com/lizitest/p/9553628.html
Copyright © 2011-2022 走看看