【发布时间】:2018-05-19 14:36:50
【问题描述】:
当我学习编码并试图理解下面给出的代码行时,我被卡住了:(
所以我真的想知道为什么当我指定 name = None、first_name = None、last_name = None 时,当我将某些内容设置为 None 时,代码仍然会打印 first_name 和 last_name(从有关 python 字典的视频中学到),为什么没有t Boolean 给我一个 False Error 甚至什么也不打印?
def packer(name=None, **kwargs):
print(kwargs)
def unpacker(first_name=None, last_name=None):
if first_name and last_name:
print('Hi {} {}'.format(first_name, last_name))
else:
print('Hi no name!')
packer(name='Elgene', num=42, spanish_inquisition=None)
unpacker(**{'last_name': 'Ee', 'first_name': 'Elgene'})
【问题讨论】:
-
这是一个空值
-
欢迎来到 StackOverflow。但是,在此处发布问题之前,您需要自己进行一些研究和工作。您是否在“python none”或类似内容上进行了网络搜索?
-
因为名字和姓氏实际上是被赋值的。函数中 = 附带的参数是可选的。如果在调用函数时未传入,则函数将使用 = 之后的任何内容运行。在您的情况下,使用 Ee 作为姓氏并将 Elgene 作为名字调用 unpacker,因此该函数使用它而不是默认值 None。这就是为什么它打印出名称而不是无。
标签: python python-3.x