[英]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.