繁体   English   中英

如何在 python 中使用 fstrings 执行 **kwargs 字典格式

[英]How to do a **kwargs dictionary format with fstrings in python

我正在学习这个 python 课程,因为我想习惯 fstrings 而不是.format(),所以我使用了 fstrings。

但它所做的只是返回一个语法错误。 (如果我从“name”中取出字符串类型,它不会返回任何错误)

def myfunc(**kwargs):
    print(kwargs)
    if "name" in kwargs:
        print(f"My name is {kwargs["name"]}")
    else:
        print("Not my name")

另一方面,这很好用:

person = {"name": 'Jenne', "age": 23}
if "name" in person:
    print(f'My name {person["name"]} and my age {person["age"]}')
else:
    "not here"

如果有帮助,我会在 jupyter notebook 上这样做

旁注:如果我从“名称”中删除字符串类型,它将 go 通过而没有任何错误。 像这样:

def myfunc(**kwargs):
    print(kwargs)
    if name in kwargs:
        print(f"My name is {kwargs[name]}")
    else:
        print("Not my name")

但是,如果我在那之后尝试使用 function,它会给我这个错误。 它说名称未定义。

myfunc(name = 'Jenne', age = 23)
{'name': 'Jenne', 'age': 23}
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-63-a9983a7b4600> in <module>
----> 1 myfunc(name = 'Jenne', age = 23)

<ipython-input-56-5814d7cb2131> in myfunc(**kwargs)
      1 def myfunc(**kwargs):
      2     print(kwargs)
----> 3     if name in kwargs:
      4         print(f"My name is {kwargs[name]}")
      5     else:

NameError: name 'name' is not defined

您需要使用不同的报价类型,例如:

def myfunc(**kwargs):
    print(kwargs)
    if "name" in kwargs:
        print(f'my name is {kwargs["name"]}')
    else:
        print("Not my name")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM