首页 > 编程知识 正文

python中的get函数(python中return)

时间:2023-05-06 04:06:00 阅读:82645 作者:273

简单叙述

在Python的代码中,这两个单词args和kwargs很常见,前面经常带一个或两个星号。

args是arguments的缩写,位置参数kwargs是keyword arguments的缩写,表示关键字参数注。 这实际上是Python可变参数的两种形式,*args必须放在**kwargs之前。 因为位置参数在关键字参数之前。

从以下五个方面理解

的角色*args的用法**的角色**kwargs的用法实例

*的作用

通过一个函数调用理解“*”的角色

定义包含# # # 3个位置参数的函数

德福(A,B,C ) :

.打印a,b,c

传递# # # 3个位置参数,调用该函数

fun (1,2,3 ) )。

23 )输出在此定义包含3个整数的数列,使用‘*’

var=[ 1,2,3 ]

fun(*var ) )。

13#输出' * '做了什么? 将数列‘var’的数值分解作为位置参数,将这些位置参数传递给函数‘fun’进行调用。

这意味着,由于var=[ 1,2,3 ],因此fun(*var )与fun ) 1,2,3 )是等价的

注: *var和位置参数可以混合使用

*args的用法

'*args '用函数定义做什么? 接受元组作为位置参数,而不是常用的参数列表。 其中“args”是元组。

“args”与“一般参数列表”混合使用

# #在函数定义中,参数‘a’表示‘一般参数列表’

deffun(a,*args ) :

.打印(航空,航空) ) ) )。

.打印(数组、数组) )。

# #‘args’接受通常参数以外的位置参数作为元组

fun (11,12,13,14 ) )。

国际航空运输协会

args is (12,13,14 )注:“args”既然是元组,我们就可以遍历它。

通过一个函数调用理解

**的作用

「**”的作用

#3定义参数的函数

德福(A,B,C ) :

.打印(a,b,c ) )。

.

func (1,2,3 ) )。

1 2 3

fun(a=1,b=2,c=3) )。

23 )使用3「**”调用函数。 这个方法需要词典。

var={'b' : 2,' c' : 3}

fun(1,**var ) ) )。

13注(通过函数调用) ),需要元组; 要在函数调用中使用“**”,需要词典

“**”做了什么? 解除字典的包装,并将字典中的数据项作为键值参数传递给函数。 因此,fun(1,**var )等效于fun ) 1,b=2,c=3)。

**kwargs的用法

函数定义中“**kwargs”是什么意思? kwargs接受常规参数列表以外的键值参数词典。 其中,“kwargs”是词典。

重新定义函数:

deffun(a,* *千瓦) :

.打印(航空,航空) ) ) )。

.打印(在此基础上输入weexpectkwargs ' b '和' c ' ) )。

.打印(bis,千瓦) ) b ) )

.打印(CIS,千瓦) ) c ) )

.

fun(1,b=3,c=5) )。

甲级联赛

在weexpectkwargs ' b '和' c '中使用此功能

国际空间站

c is 5注:可以在词典前面使用“**”解除词典的包装,并将词典的数据项作为键值参数传递。

实例

用应用例说明“kwargs”、“kwargs”的应用场景和为什么使用它。

在继承类和重写方法时,使用“*args”和“**kwargs”将接收的位置参数和键值参数传递给父类方法,以便通过实例更好地理解。

类模型(对象) :

. def _ init _ (自己,名称) :

.自助.名称=名称

. def save (自我,强制_更新=假,强制_插入=假) :

. ifforce _更新声明_插入:

. Raisevalueerror (Cannotperformbothoperations ) )。

. if强制更新:

.打印(更新索引记录)。

. if强制插入:

. print (创建新的类)。 类有) Model )的行为,但是该类的对象在保存之前会检查一些条件。 这个新类继承“model”,改写“model”的“save”

等级模型(模型) :

. def save (自,*数组,* *千瓦) :

. if自己名称==' ABCD ' :

. super (子模型,自己) .保存)余量,* *千瓦() ) ) ) ) ) ) )。) ) ) ) ) ) ) ) ) )但值。) )

. else:

. return None实际对应的保存动作在“model”的“save”方法中发生。 因此,我们将调用子类的“save”方法,而不是“model”。 子类的ChildModel的“save”接收任意父类的save“”所需的参数,并传递给父类的方法。 因此,“保存”方法的子类的参数列表有“*args”和“**kwargs”,可以接受任何位置参数或键值参数,普通参数列表除外。

然后创建ChildModel实体并保存:

c=儿童模型(ABCD ) ) )。

c.save (力插入=真) )。

创建新记录

c .保存(强制_更新=真) )。

更新现有记录现在将键值参数传递给子类的save (要调用的对象的save )方法。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。