在python问题中覆盖变量

时间:2019-03-22 05:56:33

标签: python-3.x

我是python编程的新手,请协助我。

我不想覆盖管理员,但这迫使我这样做。

def funk(Admin="subhanshu",*users,**additional):
    print("Admin is", Admin)
    print("users are", users)
    print("additional are", additional)

当我运行该函数时,它会引发错误。

funk(pass,'arun',"abcd",name='prakhar',age=23)

无效的语法

请帮助我如何调用函数,而不要覆盖函数中的 Admin 值。

1 个答案:

答案 0 :(得分:1)

更改函数签名中参数的顺序。

>>> def funk(*users, Admin='subhanshu', **additional):
...     print("Admin is", Admin)
...     print("users are", users)
...     print("additional are", additional)
...
>>> funk('these', 'are', 'all', 'users', this='is', additional=True)
Admin is subhanshu
users are ('these', 'are', 'all', 'users')
additional are {'this': 'is', 'additional': True}

您定义函数的方式意味着,传递给函数的第一个位置参数将始终分配给Admin变量。通过定义该函数,使得Admin在具有默认值的位置参数(*users)之后,它成为可选的关键字参数。