Python 函数的参数和返回值

关键字参数

可以指明参数名称,不需要严格按照顺序。

def mySum(num1, num2):
    print(num1, num2)

mySum(num2 = 5, num1 = 6)

6 5

不定长参数

*args

函数体中可以直接以元组变量的方式使用该参数

def mySum(*t):
    print(t, type(t))
    result = 0
    for v in t:
        result += v
    print(result)

mySum(4, 5, 6)

(4, 5, 6) <class ‘tuple’>
15

**dic

函数体中可以直接以字典变量的方式使用该参数
以关键字参数来使用。

def mySum(**kwargs):
    print(kwargs, type(kwargs))

mySum(name='sz', age=12)

{‘name’: ‘sz’, ‘age’: 12} <class ‘dict’>

参数拆包

装包: 把传递的参数,包转成一个集合
拆包:把集合参数再次分解为单独的个体

def mySum(a, b, c, d):
    print(a + b + c + d)

def test(*args):
    print(args)
    # 拆包
    print(*args)
    mySum(*args)

test(1, 2, 3, 4)

(1, 2, 3, 4)
1 2 3 4
10
PS

def mySum(a, b):
    print(a + b)

def test(**kwargs):
    print(kwargs)
    # 拆包
    mySum(**kwargs)

test(a=1, b=2)

{‘a’: 1, ‘b’: 2}
3

缺省参数

某个数据是默认值

def hit(sombody='dd'):
    print(sombody)

hit()

dd

值传递和引用传递

值传递:传递过来的是一个数据的副本
引用传递:传递过来的是一个变量的地址

在python中只有引用传递(地址传递)。如果数据类型是可变类型,则可以改变原件。如果数据类型是不可变类型,则不可以改变原件。

def change(num):
    print(id(num))
    num = 666
    print(id(num))

b = 10
print(id(b))
change(b)
print(b)

1855677760
1855677760
61872112
10

def change(num):
    print(id(num))
    num.append(666)
    print(id(num))

b = [1, 2, 3]
print(id(b))
change(b)
print(b)

67832168
67832168
67832168
[1, 2, 3, 666]

返回值

def caculate(a, b):
    he = a + b
    cha = a - b
    
    return (he, cha)
    
he, cha = caculate(6, 7)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值