- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我只是对 **kwargs
感到好奇。我刚刚开始学习它,所以在浏览关于 stackoverflow 和视频教程的所有问题时,我注意到我们可以这样做
def print_dict(**kwargs):
print(kwargs)
print_dict(x=1,y=2,z=3)
输出为:{'y': 2, 'x': 1, 'z': 3}
所以我想为什么不反过来打印 x=1,y=2,z=3
所以我尝试了这个:
mydict = {'x':1,'y':2,'z':3}
print(**mydict)
但是我得到了这样的错误:TypeError: 'z' is an invalid keyword argument for this function
(有时它显示 'y' 是一个无效的关键字)。
我也试过将它分配给变量然后打印它但是我又遇到了一个错误(SyntaxError: invalid syntax
):
mydict = {'x':1,'y':2,'z':3}
var = **mydict
print(var)
看到这是有效的:
def print_dict(**this):
print(this)
mydict = {'x':1,'y':2,'z':3}
print_dict(**mydict)
但是如果我执行 print(**this)
而不是 print(this)
它会给出错误。
当我尝试这段代码时,我们可以打印 *arg
:
def num(*tuple_num):
print(tuple_num)
print(*tuple_num)
num(1,2,3,4)
它运行完美,输出如下:
(1, 2, 3, 4)
1 2 3 4
所以我想知道是否有任何可能的解决方案/方法来打印 **kwargs
?
最佳答案
语法 callable(**dictionary)
应用字典就像您使用单独的关键字参数一样。
所以你的例子:
mydict = {'x':1,'y':2,'z':3}
print(**mydict)
内部翻译为:
print(x=1, y=2, z=3)
其中确切的顺序取决于当前的随机哈希种子。由于 print()
不支持这些关键字参数,因此调用失败。
另一个 print()
调用成功,因为您将值作为单独的位置参数传递:
tuple_num = (1, 2, 3, 4)
print(*tuple_num)
实际上等同于:
print(1, 2, 3, 4)
print()
函数支持单独的参数,通过在它们之间使用 sep
值(默认情况下为空格)将它们一个一个地写出来。
**dictionary
不是调用之外的有效语法。由于 callable(**dictionary)
是调用语法的一部分,而不是对象,因此没有什么可打印的。
最多,您可以格式化字典使其看起来像调用:
print(', '.join(['{}={!r}'.format(k, v) for k, v in mydict.items()]))
关于python - 有什么办法可以在 Python 中打印 **kwargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39623889/
我有一个像 s = "title='bah' name='john and jill' purple='haze' none=None i=1" 我正在寻找一种将其放入字典的 Pythonic 方式(
我正在通过教程阅读有关模板 View 的内容,其中一些代码让我感到困惑。作者使用了这个代码示例 from django.utils.timezone import now class AboutUsV
看不懂下面的例子,假设我有这些功能: # python likes def save(filename, data, **kwargs): fo = openX(filename, "w",
假设我们有一个像这样的函数声明 def myfunc(a=None,b=None): as_dict = {"a": a, "b": b,
def a(**akwargs): def b(bkwargs=akwargs): # how to not only use akwargs defaultly,but al
阅读 Python 文档,有几种创建字典的方法。 dict() dict(**kwargs) dict(mapping, **kwargs) dict(iterable, **kwargs) http
两种方法我都见过,但我不明白它们的区别以及我应该将什么作为“最佳实践”: def custom_function(**kwargs): foo = kwargs.pop('foo')
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 8 年前。 Improve t
我需要将 args 和 kwargs 都存储在一个元组中以便稍后调用,那么在这种情况下元组中的适当值是 *args 还是 args?换句话说,这行得通吗: def __init__(self, *ar
我有这个查询 Location.objects.filter(locations_rate__rate=search_rate).distinct('id') 如何将 distinct() 设置为 *
是否可以简化 kwargs 选项的 bool 检查? 例如在 foo 中我必须检查很多选项: def foo(*args, **kwargs): if 'foo' in kwargs and k
我尝试运行 Python Data Science Essential 一书中的一个示例。但是,当我运行它时出现错误。实际上,我才刚刚开始学习 python。所以,我觉得很难修复这些错误。请帮我。这是
我正在尝试使用以下代码在一个大图中创建多个seaborn regplot: %matplotlib notebook import seaborn as sns from itertools impo
我有一个这样的函数:。如果有参数x,则它一定是布尔值。任何其他命名参数必须为int。。其他人将编写调用foo的函数,我希望他们能够传递x和kwargs。目前,这意味着调用foo()的每个函数除了kwa
当一个类继承自单个类时,调用父方法的首选方式是什么?我知道有两种调用父方法的方法。 选项 1: ParentClass.method(self, *args, **kwargs) 选项 2: supe
问题 我在 Dusty Phillips 的 Object Oriented Programming(为简洁起见而简化)中遇到了这段代码,但我不确定这个定义的特定部分。 class A: de
在创建数据类对象时我可以使用 kwargs 没有问题: @dataclass() class Data: name: str = 'Unnamed' additiona
在创建数据类对象时我可以使用 kwargs 没有问题: @dataclass() class Data: name: str = 'Unnamed' additiona
我在下面运行了一个装饰器演示。 def logger(func): def inner(*args, **kwargs): print(args) print(
如何使用“一个”类参数**kwargs设置对象属性? 我想要的是在一个循环中执行此代码: class purchase(): def __init__(self,**kwargs):
我是一名优秀的程序员,十分优秀!