一个简单的功能
var = {
'a':100,
'b':100,
'c':200
}
#找到值是100的key值
var2 = [k for k,v in var.items() if v == 100]
print(var2)
把上面的功能封装成函数
def get_value(dict, value):
return [k for k,v in dict.items() if v == value]
直接调用:
#位置参数不可交换位置
print(get_value(var,100))
print(get_value({'a':40},40))
关键字参数,写出参数名和对应的值
#关键字参数,写出形参。可以不按照顺序去赋值
print(get_value(dict=var,value = 100))
函数参数传递在函数内部不改变其值,相当于C++中串值
def test(var):
var = 100
return var
参数*号的使用
#参数的收集 *收集位置参数 **收集关键字参数
def test(name,age,*arg,**args):
print(name,age,*arg,**args)
#一个*表示可变参数,不知道以后会有多少参数
test('王',20,'男',[1,2,3])
#两个*通过字典串进去,表示关键字参数
dici_var = {
'math':100,
'english':95
}
test('王',20,dici_var)
王 20 男 [1, 2, 3]
王 20 {'math': 100, 'english': 95}
装饰器
装饰器本质上是一个Python函数,它可以让函数在不需要改变代码前提下增加额外功能,装饰器的返回值也是一个函数对象。
def fun(f):
def wrapper(*arg, **args):
print("do something")
return round(f(),6)
return wrapper
#返回一个从0-1的浮点值
@fun
def test():
return random.random()
f = fun(test)
print(f())
do something
do something
0.669571
aaa